代码之家  ›  专栏  ›  技术社区  ›  Jaeeun Lee ueznem

CSS样式不应用于元素的溢出部分

  •  1
  • Jaeeun Lee ueznem  · 技术社区  · 8 年前

    https://codepen.io/sleepydada/pen/RLBqYW

    HTML:

    <ul>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
    </ul>
    

    * {
       box-sizing: border-box; 
    }
    ul {
      list-style: none;
      display: flex;
      border-right: 13px solid yellow;
      padding:0;
      li {
        background:red;
        flex: 0 0 250px;
        height: 250px;
        border: 1px solid black;
        box-shadow: 0 4px 2px -2px gray;
      }
      &.added {
        border: 10px solid blue;
       }
    }
    

    JS:

    var ul = document.querySelector('ul')
    window.addEventListener('scroll', function() {
      ul.classList.add('added')
    })
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   G-Cyrillus    8 年前

    要允许容器扩展到最初设置的大小,可以使用表布局。 https://www.w3.org/TR/CSS2/tables.html#auto-table-layout

    在这种情况下,您使用 flex 不要让孩子裹着。 display:table + table-cell 将具有相同的行为,但也会根据需要扩展。

    var ul = document.querySelector('ul')
    window.addEventListener('scroll', function() {
      ul.classList.add('added')
    })
    * {
      box-sizing: border-box;
    }
    
    ul {
      list-style: none;
      display: table;
      border-right: 13px solid yellow;
      padding: 0;
      height: 250px;
      width: 100%;/* is this needed ? */
    }
    ul li {
      background: red;
      display: table-cell;
      min-width: 250px;
      border: 1px solid black;
      box-shadow: 0 4px 2px -2px gray;
    }
    ul.added {
      border: 10px solid blue;
    }
    <ul>
      <li></li> 
      <li></li>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
    </ul>

    https://codepen.io/gc-nomade/pen/QqBzaZ/