代码之家  ›  专栏  ›  技术社区  ›  Mendes

Flex容器未获取其子容器的全宽度[重复]

  •  1
  • Mendes  · 技术社区  · 4 年前

    考虑以下简单的flex网格:

    .container {
      display: flex;
      flex-direction: row;
      width: 100%;
    }
    
    .container:hover {
      background-color: orange;
    }
    
    .child {
      display: flex;
      padding: 4px;
      flex: 1;
      height: 24px;
      border: 1px solid grey;
      width: 50px;
      min-width: 50px;
      max-width: 50px;
    }
    <div class="container">
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
    </div>

    container:hover 穿过整条线。修复橙色悬停线不够大,无法悬停到所有子对象(向右滚动可查看效果)。

    如何制作 container children ?

    2 回复  |  直到 4 年前
        1
  •  1
  •   focus.style    4 年前

    问题是 .容器

    更新 你应该把家长改成 并移除 宽度:100%;

    .container {
      display: inline-flex;
      flex-direction: row;      
    }
    
    .container:hover {
      background-color: orange;
    }
    
    .child {
      display: flex;
      padding: 4px;
      flex: 1;
      height: 24px;
      border: 1px solid grey;
      width: 50px;
      min-width: 50px;
      max-width: 50px;
    }
    <div class="container">
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
      <div class="child">Child</div>
    </div>
        2
  •  0
  •   m1ck    4 年前

    如果希望悬停覆盖所有子对象,则应将其应用于子对象:

    .container:hover .child {
      background-color: orange;
    }
    

    注意:这将修复您想要修复的内容,但是 直接使容器得到其子容器的宽度。