【技巧】歪脑筋优化flexbox瀑布流布局方案

效果先行

需求

示意图
在大量“不定宽”元素并排的布局模式下,上图是咱们想要的最佳布局
可是FlexBox布局虽然枪弹但并不能彻底呈现以上布局,因而咱们须要结合FlexBox做下小的改动便可实现。css

css现成的布局方式

Flex布局,具备等分布局的能力,如图
html

问题

可是底部咱们并不想如此等分,咱们更但愿能够同上一排对齐布局

方案

其实很简单,咱们只要在后面加入一些等宽可是占高为0等隐藏元素便可轻松实现。
如图:

至于【empty】元素的数量须要不小于单行最多元素的数量便可,
最后咱们将empty设置隐藏便可flex

.empty {
    visibility: hidden; 
}

完整demo代码

【JSFiddle地址】
https://jsfiddle.net/zwwill/43qnjxyL/spa

<html>
<head>
    <meta charset="UTF-8">
    <title>并排等分,单排靠左最齐布局</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }
        .main {
            display: flex;
            width: 1000px;
            flex-flow: row wrap;
            justify-content: space-between;
            margin: 50px auto;
            background-color: #ccc;
            align-content: baseline;
        }
        .main span {
            width: 132px;
            height: 200px;
            display: inline-block;
            background-color: #666;
            margin: 4px;
        }
        .main .emp{
            height: 0;
            border: none;
            margin-top: 0;
            margin-bottom: 0;
            visibility: hidden;
        }
    </style>
</head>
<body>
    <div class="main">
        <span style="">1</span>
        <span style="">2</span>
        <span style="">3</span>
        <span style="">4</span>
        <span style="">5</span>
        <span style="">6</span>
        <span style="">7</span>
        <span style="">8</span>
        <span style="">9</span>
        <span style="">10</span>
        <span style="">11</span>
        <span style="">12</span>  
        <span class="emp" >empty</span>
        <span class="emp" >empty</span>
        <span class="emp" >empty</span>
        <span class="emp" >empty</span>
        <span class="emp" >empty</span>
        <span class="emp" >empty</span>
        <span class="emp" >empty</span>
        <span class="emp" >empty</span>
        <span class="emp" >empty</span>
    </div>
</body></html>
相关文章
相关标签/搜索