Javascript flex项目是否可以与上面的项目紧密对齐?

Javascript flex项目是否可以与上面的项目紧密对齐?,javascript,css,flexbox,pinterest,Javascript,Css,Flexbox,Pinterest,这实际上是Pinterest布局。然而,在线找到的解决方案被包装在列中,这意味着容器无意中水平增长。也就是说,不是Pinterest布局,它不能很好地处理动态加载的内容 我想做的是有一组固定宽度和不对称高度的图像,水平布置,但在满足固定宽度容器的限制时,将其包装成新的一行: flexbox能做到这一点吗,还是我必须求助于JS解决方案,如Massy?你想要的东西可以通过3 2种方式实现,CSS方面: 1.flexbox: 2.CSS列 (此解决方案具有内置的非常简洁的优点-对于标题来说非常方便

这实际上是Pinterest布局。然而,在线找到的解决方案被包装在列中,这意味着容器无意中水平增长。也就是说,不是Pinterest布局,它不能很好地处理动态加载的内容

我想做的是有一组固定宽度和不对称高度的图像,水平布置,但在满足固定宽度容器的限制时,将其包装成新的一行:


flexbox能做到这一点吗,还是我必须求助于JS解决方案,如Massy?

你想要的东西可以通过3 2种方式实现,CSS方面:

1.flexbox:

2.CSS列 (此解决方案具有内置的非常简洁的优点-对于标题来说非常方便)。缺点是按列排序项目(第一列包含项目的前三分之一,依此类推…)。我为此做了一个决定

    .parent {
        -webkit-columns: {column width} {number of columns}; /* Chrome, Safari, Opera */
        -moz-columns: {column width} {number of columns}; /* Firefox */
        columns: {column width} {number of columns};
    }
    .child {
         width: {column width};
    }
    /* where {column width} is usually fixed size 
     * and {number of columns} is the maximum number of columns.
     * Additionally, to avoid breaks inside your elements, you want to add:
     */
    .child {
        display: inline-block;
        -webkit-column-break-inside: avoid;
        page-break-inside: avoid;
        break-inside: avoid-column;
    }
3.砖石插件
通过JavaScript(砌体插件)计算渲染项目大小后的绝对定位。

您想要的东西可以通过3种2种方式实现,CSS方面:

1.flexbox:

2.CSS列 (此解决方案具有内置的非常简洁的优点-对于标题来说非常方便)。缺点是按列排序项目(第一列包含项目的前三分之一,依此类推…)。我为此做了一个决定

    .parent {
        -webkit-columns: {column width} {number of columns}; /* Chrome, Safari, Opera */
        -moz-columns: {column width} {number of columns}; /* Firefox */
        columns: {column width} {number of columns};
    }
    .child {
         width: {column width};
    }
    /* where {column width} is usually fixed size 
     * and {number of columns} is the maximum number of columns.
     * Additionally, to avoid breaks inside your elements, you want to add:
     */
    .child {
        display: inline-block;
        -webkit-column-break-inside: avoid;
        page-break-inside: avoid;
        break-inside: avoid-column;
    }
3.砖石插件 通过JavaScript(砌体插件)计算渲染项目大小后的绝对定位。

Flexbox是一个“一维”布局系统:它可以沿水平线或垂直线对齐项目

真正的网格系统是“二维”的:它可以沿水平线和垂直线对齐项目。换句话说,单元格可以跨越列和行,而flexbox无法做到这一点

这就是为什么flexbox构建网格的能力有限。这也是开发另一种CSS3技术的原因,网格布局(见下文)


在具有
flex flow:row wrap
的flex容器中,flex项必须换行到新行

这意味着弹性项目不能包装在同一行的另一个项目下

请注意上面的div#3如何在div#1下面换行,从而创建一个新行。它不能在div#2下面包装

因此,当项目不是行中最高的项目时,会保留空白,从而产生难看的间隙

形象信贷:


列换行
解决方案 如果切换到
flex-flow:column-wrap
,flex项将垂直堆叠,更容易实现网格式布局。但是,列方向容器有三个潜在问题:

  • 它水平扩展容器,而不是垂直扩展容器(如Pinterest布局)
  • 在撰写本文时,它在所有主要的浏览器中都存在不足
  • 因此,在许多情况下,列方向容器可能不可行


    其他解决方案
    • 添加容器

      在上面的前两幅图像中,考虑在单独的容器中包装项目2和3。此新容器可以是项目1的同级容器。完成了

      下面是一个详细的示例:

      值得强调的一个缺点是:如果您想使用
      order
      属性重新安排版面(例如在媒体查询中),此方法可能会取消该选项

    • 砌体是一个JavaScript网格布局库。信息技术 工作原理是根据可用数据将图元放置在最佳位置 垂直空间,有点像石匠在墙上安装石头

      资料来源:

    • [Pinterest]确实是一个很酷的网站,但我发现有趣的是这些插针板的布局。。。因此,本教程的目的是重新创建这种响应块效果

      资料来源:

    • 该CSS模块定义了一个基于二维网格的布局系统,针对用户界面设计进行了优化。在网格布局模型中,可以将网格容器的子对象定位到预定义的灵活或固定大小布局网格中的任意插槽中

      资料来源:

      网格布局示例:

    Flexbox是一种“一维”布局系统:它可以沿水平线或垂直线对齐项目

    真正的网格系统是“二维”的:它可以沿水平线和垂直线对齐项目。换句话说,单元格可以跨越列和行,而flexbox无法做到这一点

    这就是为什么flexbox构建网格的能力有限。这也是开发另一种CSS3技术的原因,网格布局(见下文)


    在具有
    flex flow:row wrap
    的flex容器中,flex项必须换行到新行

    这意味着弹性项目不能包装在同一行的另一个项目下

    请注意上面的div#3如何在div#1下面换行,从而创建一个新行。它不能在div#2下面包装

    因此,当项目不是行中最高的项目时,会保留空白,从而产生难看的间隙

    形象信贷:


    列换行
    解决方案 如果切换到
    flex-flow:column-wrap
    ,flex项将垂直堆叠,更容易实现网格式布局。但是,列方向容器有三个潜在问题:

  • 它水平扩展容器,而不是垂直扩展容器(如Pinterest布局)
  • 在撰写本文时,它在所有主要的浏览器中都存在不足
  • 因此,在许多情况下,列方向容器可能不可行


    其他解决方案
    • 添加容器

      在上面的前两幅图像中,考虑在单独的容器中包装项目2和3。此新容器可以是项目1的同级容器。完成了

      下面是一个详细的示例:

      值得强调的一个缺点是:如果你想使用
      order
      pr