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

如何在列中创建浮动元素?[复制品]

  •  -1
  • Programmingjoe  · 技术社区  · 6 年前

    这个问题已经有了答案:

    我的应用程序中有一个3列布局,其中列中的项目都是等宽的,但高度不同。我希望列中的项目占用每列的所有可用空间。附上图像。

    enter image description here

    关于如何使用CSS有什么想法吗?给定这样的HTML布局:

    <div className="container">
       <div className="item">
       <div className="item">
       <div className="item">
       <div className="item">
       <div className="item">
       <div className="item">
       ...
    </div>
    

    我在考虑在React中使用JSX来实际创建3个列,但我认为可能有一种简单的CSS方法来实现这一点。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Programmingjoe    6 年前

    感谢@divy3993的链接: https://w3bits.com/labs/flexbox-masonry/2/ 一旦你意识到创造的术语是“砖石结构”,谷歌就会更容易理解这一点。

    父容器( .container 在我的示例中)具有以下样式:

    .masonry { 
      display: flex;
      flex-flow: column wrap;
      max-height: 800px;
      margin-left: -8px; /* Adjustment for the gutter */
      width: 100%;
    }
    

    砖也应该有点间距( .item 在我的例子中:

    .masonry-brick {
      margin: 0 8px 8px 0; /* Some gutter */
    }
    

    这个解决方案相当有限 max-height 值是必需的,因为项基本上是逐列包装的。然而,一个简单的ish修复方法是添加计算项目高度的javascript。可以使用各种方法来实现这一点。