研究了一阵子了,发现个好东西,给大家分享下!

直接上个例子:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>菜鸟教程(runoob.com)</title> 
<style> 
    @media screen and (max-width: 800px) {
                .masonry {
                    column-count: 2; // two columns on larger phones
                }
            }
            @media screen and (max-width: 500px) {
                .masonry {
                    column-count: 1; // two columns on larger phones
                }
            }
.masonry {
                -moz-column-count:2; /* Firefox */
                -webkit-column-count:2; /* Safari 和 Chrome */
                column-count:2;
                -moz-column-gap: 2em;
                -webkit-column-gap: 2em;
                column-gap: 2em;
                width: 90%;
                margin:2em auto;
            }
            .item {
                padding: 1em;
                margin-bottom: 2em;
                -moz-page-break-inside: avoid;
                -webkit-column-break-inside: avoid;
                break-inside: avoid;
                background: #f60;
            }
</style>
</head>
<body>

<div class="masonry">
            <div class="item">
                <div class="item_content content-lar"> 1
                    lkjasdfjafja昆仑剑法撒旦撒发卡机<br>
                    lkjasdfjafja昆仑剑法撒旦撒发卡机<br>
                    lkjasdfjafja昆仑剑法撒旦撒发卡机<br>
                </div>
            </div>
            <div class="item">
                <div class="item_content content-sma"> 2
                </div>
            </div>
            <div class="item">
                <div class="item_content content-mid"> 3
                    lkjasdfjafja昆仑剑法撒旦撒发卡机<br>
                    lkjasdfjafja昆仑剑法撒旦撒发卡机<br>
                </div>
            </div>
            <div class="item">
                <div class="item_content content-sma"> 4
                </div>
            </div>
            <div class="item">
                <div class="item_content content-mid"> 5
                </div>
            </div>
            <div class="item">
                <div class="item_content content-lar"> 6
                    lkjasdfjafja昆仑剑法撒旦撒发卡机<br>
                    lkjasdfjafja昆仑剑法撒旦撒发卡机<br>
                    lkjasdfjafja昆仑剑法撒旦撒发卡机<br>
                    lkjasdfjafja昆仑剑法撒旦撒发卡机<br>
                </div>
            </div>
            <div class="item">
                <div class="item_content content-sma"> 7
                </div>
            </div>
            <div class="item">
                <div class="item_content content-lar"> 8
                </div>
            </div>
            <div class="item">
                <div class="item_content content-lar"> 9
                </div>
            </div>
            <div class="item">
                <div class="item_content content-sma"> 10
                </div>
            </div>
            <div class="item">
                <div class="item_content content-mid"> 11
                </div>
            </div>
            <div class="item">
                <div class="item_content content-mid"> 12
                </div>
            </div>
            <!-- more items -->
        </div>

</body>
</html>

---------------------

这个可以实现如下的效果:

CSS3仿淘宝两列错位展示商品

 

多列布局详解

  1. 设置对象的列数和每列的宽度。复合属性。

  2. 设置对象的宽度;使用像素表示。auto:根据 <’ column-count '> 自定分配宽度

  3. column-count: | auto 用来定义对象中的列数,使用数字 1-10表示。
    auto:根据 <’ column-width '> 自定分配宽度

  4. column-gap: normal || length, normal是默认值,为1em, length 是用来设置列与列之间的间距。

  5. column-rule:<’ column-rule-width ‘> || <’ column-rule-style ‘> || <’ column-rule-color '>
    设置对象的列与列之间的边框。复合属性

  6. column-fill:auto | balance
    设置对象所有列的高度是否统一;
    auto: 列高度自适应内容;
    balance: 所有列的高度以其中最高的一列统一

  7. column-break-before:auto | always | avoid | left | right | page | column | avoid-page | avoid-column
    设置对象之前是否断行;
    auto: 既不强迫也不禁止在元素之前断行并产生新列;
    always: 总是在元素之前断行并产生新列
    avoid:避免在元素之前断行并产生新列

  8. column-break-after:auto | always | avoid | left | right | page | column | avoid-page | avoid-column
    设置对象之后是否断行

  9. column-break-inside:auto | avoid | avoid-page | avoid-column
    设置对象内部是否断行;
    auto:既不强迫也不禁止在元素内部断行并产生新列;
    avoid:避免在元素内部断行并产生新列

column-span: none(默认值)|| all,none是不跨越任何列。all 是元素跨越所有列,并定位在列的Z轴之上。

相关文章: