【问题标题】:Completely hiding block elements that don't fully fit in the visible part of their parent完全隐藏不完全适合其父级可见部分的块元素
【发布时间】:2016-09-17 02:47:55
【问题描述】:

假设我在一个容器中有三个块元素。黑线表示容器。蓝色框是其中的三个块元素。

这三个元素不太合适。如果我在外部元素上设置overflow: hidden,我将看到前两个元素和部分第三个元素。

我想要的是只显示完全适合容器的元素。

这可以通过 CSS 实现吗?

【问题讨论】:

    标签: css


    【解决方案1】:

    是的,Flexbox 是可能的,您需要设置 flex-direction: columnflex-wrap: wrapoverflow: hidden

    您还需要在 flex-childs 上设置全宽或 calc(100% - margin),这样当最后一个元素包裹自身时,它将离开父元素,而父元素上的 overflow: hidden 将负责休息。

    * {
      box-sizing: border-box;
    }
    .container {
      height: 200px;
      width: 200px;
      border: 1px solid black;
      display: flex;
      flex-direction: column;
      flex-wrap: wrap;
      overflow: hidden;
    }
    .box {
      flex: 0 0 70px;
      width: calc(100% - 10px);
      margin: 5px;
      background: #46A1FF;
    }
    <div class="container">
      <div class="box"></div>
      <div class="box"></div>
      <div class="box"></div>
    </div>

    【讨论】:

    • 可能为了清楚起见,这里的属性是分开的,但人们往往会忘记flex-flow 可以用作flex-directionflex-wrap 的简写属性。 flex-flow: column wrap;
    • 如果 CSS 不是一个选项 - 检查 stackoverflow.com/a/2583281/6344916
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多