代码之家  ›  专栏  ›  技术社区  ›  Wais Kamal

阻止特定子元素展开其父元素

  •  1
  • Wais Kamal  · 技术社区  · 6 年前

    这就是我现在所拥有的:

    * {
      box-sizing: border-box;
    }
    
    .container {
      width:  300px;
      border: 1px solid #000;
    }
    
    .mainrow, .subrows div {
      width:   100%;
      padding: 10px
    }
    
    .mainrow {
      background: #CCC;
    }
    
    .subrows div {
      background: #DDD;
    }
    
    .subrows {
      overflow: auto;
    }
    <div class="container">
      <div class="mainrow">First row</div>
      <div class="subrows">
        <div>Sub row 1</div>
        <div>Sub row 2</div>
        <div>Sub row 3</div>
        <div>Sub row 4</div>
        <div>Sub row 5</div>
        <div>Sub row 6</div>
        <div>Sub row 7</div>
        <div>Sub row 8</div>
        <div>Sub row 9</div>
        <div>Sub row 10</div>
      </div>
    </div>

    我想要的是阻止 .ops 从扩张 .container .

    我尝试了中描述的修复 this post

    * {
      box-sizing: border-box;
    }
    
    .container {
      width:       300px;
      padding-top: 100px;
      border:      1px solid #000;
    }
    
    .mainrow, .subrows div {
      width:   100%;
      padding: 10px
    }
    
    .mainrow {
      background: #CCC;
    }
    
    .subrows {
      position:   absolute;
      width:      100%;
      max-height: 100px;
      top:        0;
      left:       0;
      overflow:   auto;
    }
    
    .subrows div {
      background: #DDD;
    }
    <div class=“container”>
    <div class=“subwrws”>
    <部门>子行1</部门>
    <部门>子行3</部门>
    <部门>子行4</部门>
    <部门>子行5</部门>
    <部门>子行6</部门>
    <部门>子行7</部门>
    <部门>子行8</部门>
    <部门>子行10</部门>
    </部门>
    </部门>

    .subrows 出现在上面 .mainrow

    2 回复  |  直到 6 年前
        1
  •  3
  •   Pete Irfan TahirKheli    6 年前

    给你的容器相对定位和添加top:100% 到副轮

    * {
      box-sizing: border-box;
    }
    
    .container {
      width:       300px;
      border:      1px solid #000;
      position:relative;
    }
    
    .mainrow, .subrows div {
      width:   100%;
      padding: 10px
    }
    
    .mainrow {
      background: #CCC;
    }
    
    .subrows {
      position:   absolute;
      width:      100%;
      max-height: 100px;
      top:        100%;
      margin-top: 1px;      /* for container border to show */
      left:       0;
      overflow:   auto;
    }
    
    .subrows div {
      background: #DDD;
    }
    <div class="container">
      <div class="mainrow">First row</div>
      <div class="subrows">
        <div>Sub row 1</div>
        <div>Sub row 2</div>
        <div>Sub row 3</div>
        <div>Sub row 4</div>
        <div>Sub row 5</div>
        <div>Sub row 6</div>
        <div>Sub row 7</div>
        <div>Sub row 8</div>
        <div>Sub row 9</div>
        <div>Sub row 10</div>
      </div>
    </div>

    从容器的边界可以看到,它没有扩展到适合子窗口(我不知道为什么您要这样做,因为主线下的任何内容现在都将被子窗口覆盖)

        2
  •  0
  •   user9141607    6 年前

    * {
      box-sizing: border-box;
    }
    
    .container {
      width:       300px;
      border:      1px solid #000;
    }
    
    .mainrow, .subrows div {
      width:   100%;
      padding: 10px
    }
    
    .mainrow {
      background: #CCC;
    }
    
    .subrows {
      position:   relative;
      width:      100%;
      height: 100px;
      top:        0;
      left:       0;
      overflow:   auto;
    }
    
    .subrows div {
      background: #DDD;
    }
    <div class="container">
      <div class="mainrow">First row</div>
      <div class="subrows">
        <div>Sub row 1</div>
        <div>Sub row 2</div>
        <div>Sub row 3</div>
        <div>Sub row 4</div>
        <div>Sub row 5</div>
        <div>Sub row 6</div>
        <div>Sub row 7</div>
        <div>Sub row 8</div>
        <div>Sub row 9</div>
        <div>Sub row 10</div>
      </div>
    </div>