Css 如何创建栅格/平铺视图?

Css 如何创建栅格/平铺视图?,css,grid,positioning,css-float,tiles,Css,Grid,Positioning,Css Float,Tiles,例如,我有一些class.article,我想把这个类看作网格视图。所以我采用了这种风格: .article{ width:100px; height:100px; background:#333; float:left; margin:5px; } 该样式将使.article看起来平铺/网格化。在固定高度下工作很好。但是如果我想将高度设置为自动(根据其中的数据自动拉伸),网格看起来很糟糕 我想把视图做成这样: 这种布局称为砌体布局。砌体是另一种网格布局,但它将填充因图元

例如,我有一些class.article,我想把这个类看作网格视图。所以我采用了这种风格:

.article{
  width:100px;
  height:100px;
  background:#333;
  float:left;
  margin:5px;
}
该样式将使.article看起来平铺/网格化。在固定高度下工作很好。但是如果我想将高度设置为自动(根据其中的数据自动拉伸),网格看起来很糟糕

我想把视图做成这样:


这种布局称为砌体布局。砌体是另一种网格布局,但它将填充因图元高度不同而产生的空白

是jQuery插件之一,用于创建砌体布局


或者,您可以使用CSS3S。但是现在基于jQuery的插件是最好的选择,因为与CSS3列存在兼容性问题。

这种类型的布局称为砌石布局。砌体是另一种网格布局,但它将填充因图元高度不同而产生的空白

是jQuery插件之一,用于创建砌体布局


或者,您可以使用CSS3S。但是现在基于jQuery的插件是最好的选择,因为它与CSS3列存在兼容性问题。

如果你想更进一步,请使用同位素,它是砌体的高级版本(由同一作者开发)。它不是纯CSS,它使用Javascript的帮助,但非常流行,所以你会找到大量的文档


如果您发现它非常复杂,那么有许多高级插件已经基于同位素进行了开发,例如媒体盒,如果您想比砌体更进一步,请使用同位素它是砌体的高级版本(由同一作者开发),它不是纯CSS,它使用Javascript的帮助,但是它非常流行,所以你会发现很多文档

如果您发现它非常复杂,那么有许多高级插件已经基于同位素进行了开发,例如媒体盒,您可以使用flexbox

  • 将图元放置在多行列flex容器中

    #柔性容器{
    显示器:flex;
    柔性流:柱包裹;
    }
    
  • 对元素重新排序,使DOM顺序在水平方向上而不是垂直方向上得到遵守。例如,如果需要3列

    #flex container>:第n个子(3n+1){order:1;}/*第1列*/
    #flex容器>:第n个子(3n+2){顺序:2;}/*第2列*/
    #flex容器>:第n个子(3n+3){顺序:3;}/*第3列*/
    
  • 在每列的第一项之前强制分栏:

    #flex container>:第n个子级(-n+3){
    分页符之前:始终;/*CSS 2.1语法*/
    在之前中断:始终;/*新语法*/
    }
    
    遗憾的是,并非所有浏览器都支持flexbox中的换行符。不过,它可以在Firefox上运行

  • #柔性容器{
    显示器:flex;
    柔性流:柱包裹;
    }
    #flex容器>:第n个子(3n+1){顺序:1;}/*第1列*/
    #flex容器>:第n个子(3n+2){顺序:2;}/*第2列*/
    #flex容器>:第n个子(3n+3){顺序:3;}/*第3列*/
    #flex容器>:第n个子级(-n+3){
    分页符之前:始终;/*CSS 2.1语法*/
    在之前中断:始终;/*新语法*/
    }
    /*以下是可选的*/
    #flex容器>div{
    背景:#666;
    颜色:#fff;
    保证金:3倍;
    显示器:flex;
    证明内容:中心;
    对齐项目:居中;
    字体大小:36px;
    }
    #flex容器>:第n个子(1){高度:100px;}
    #flex容器>:第n个子(2){高度:50px;}
    #flex容器>:第n个子(3){高度:75px;}
    #flex容器>:第n个子(4){高度:50px;}
    #flex容器>:第n个子(5){高度:100px;}
    #flex容器>:第n个子(6){高度:50px;}
    #flex容器>:第n个子(7){高度:100px;}
    #flex容器>:第n个子(8){高度:75px;}
    #flex容器>:第n个子(9){高度:125px;}
    
    123
    456
    789
    
    您可以使用flexbox

  • 将图元放置在多行列flex容器中

    #柔性容器{
    显示器:flex;
    柔性流:柱包裹;
    }
    
  • 对元素重新排序,使DOM顺序在水平方向上而不是垂直方向上得到遵守。例如,如果需要3列

    #flex container>:第n个子(3n+1){order:1;}/*第1列*/
    #flex容器>:第n个子(3n+2){顺序:2;}/*第2列*/
    #flex容器>:第n个子(3n+3){顺序:3;}/*第3列*/
    
  • 在每列的第一项之前强制分栏:

    #flex container>:第n个子级(-n+3){
    分页符之前:始终;/*CSS 2.1语法*/
    在之前中断:始终;/*新语法*/
    }
    
    遗憾的是,并非所有浏览器都支持flexbox中的换行符。不过,它可以在Firefox上运行

  • #柔性容器{
    显示器:flex;
    柔性流:柱包裹;
    }
    #flex容器>:第n个子(3n+1){顺序:1;}/*第1列*/
    #flex容器>:第n个子(3n+2){顺序:2;}/*第2列*/
    #flex容器>:第n个子(3n+3){顺序:3;}/*第3列*/
    #flex容器>:第n个子级(-n+3){
    分页符之前:始终;/*CSS 2.1语法*/
    在之前中断:始终;/*新语法*/
    }
    /*以下是可选的*/
    #flex容器>div{
    背景:#666;
    颜色:#fff;
    保证金:3倍;
    显示器:flex;
    证明内容:中心;
    对齐项目:居中;
    字体大小:36px;
    }
    #flex容器>:第n个子(1){高度:100px;}
    #flex容器>:第n个子(2){高度:50px;}
    #flex容器>:第n个子(3){高度:75px;}
    #flex容器>:第n个子(4){高度:50px;}
    #flex容器>:第n个子(5){高度:100px;}
    #flex容器>:第n个子(6){高度:50px;}
    #flex容器>:第n个子(7){高度:100px;}
    #flex容器>:第n个子(8){高度:75px;}
    #flex容器>:第n个子(9){高度:125px;}
    
    123
    456
    789
    
    解决仅使用css的问题的最佳选项是使用css列计数属性

     .content-box {
       border: 10px solid #000000;
       column-count: 3;
     }
    
    检查这个mo
    <!--[if lte IE 9]>
        <script src="/path/to/js/masonry.pkgd.min.js"></script>
    <![endif]-->