解決flex布局換行最后一行的元素?zé)o法靠左/上布局的簡(jiǎn)單方法

問(wèn)題:

當(dāng)我們使用flex布局并設(shè)置自動(dòng)換行時(shí),最后一行的元素不會(huì)按照我們的預(yù)期靠左布局,如:

<view class="test">
    <view class="item">1</view>
    <view class="item">2</view>
    <view class="item">3</view>
    <view class="item">4</view>
    <view class="item">5</view>
</view>

css:

.test{
    width: 100%;
    background-color: blue;
    display: flex;
    //flex-direction: row;//橫向排列,row是默認(rèn)值
    //justify-content: space-around;//有換行不推薦使用彈性布局的對(duì)齊方式,否則最后一行元素會(huì)被擠到一起
    flex-wrap: wrap;
    
    .item{
        width: 22%;
        height: 100rpx;
        margin: 10rpx;
        background-color: red;
    }
}

結(jié)果:


image.png
需求:使"5"這個(gè)元素靠左布局

解決方法:給父元素增加一個(gè)偽元素,即:

.test{
        width: 100%;
        background-color: blue;
        display: flex;
        flex-wrap: wrap;
        &::after{
          flex: auto;
          content: "";
        }
    
        .item{
            width: 22%;
            height: 100rpx;
            margin: 10rpx;
            background-color: red;
            
        }
    }

結(jié)果:


image.png
同理,可實(shí)現(xiàn)縱向排列最后一行靠上排列:
.test{
        width: 100%;
        height: 450rpx;
        background-color: blue;
        display: flex;
        flex-direction: column;//縱向排列
        flex-wrap: wrap;
        &::after{
          flex: auto;
          content: "";
        }
    
        .item{
            height: 20%;
            margin: 10rpx;
            background-color: red;
            
        }
    }

image.png


可能會(huì)出現(xiàn)的問(wèn)題:當(dāng)子元素?cái)?shù)量少無(wú)法占滿(mǎn)父元素的寬度時(shí),會(huì)出現(xiàn)以下問(wèn)題:

image.png

要使“5”“6”兩個(gè)元素靠左,且兩列元素的間隔為之前設(shè)置的margin值,如何解決?
目前可實(shí)現(xiàn)的憨方法(遇到好方法就更新0.0):將現(xiàn)父元素test的width設(shè)為0(無(wú)法設(shè)置背景色,可在外部嵌套一層元素,在該元素上設(shè)置背景色)
image.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 聲明 本系列文章內(nèi)容全部梳理自以下四個(gè)來(lái)源: 《HTML5權(quán)威指南》 《JavaScript權(quán)威指南》 MDN w...
    Leson17閱讀 565評(píng)論 0 0
  • 如果每一行列數(shù)是固定的 【方法一】:模擬 space-between 和間隙,也就是我們不使用 justify-c...
    NemoExpress閱讀 8,710評(píng)論 0 3
  • 基礎(chǔ)概念: 塊級(jí)元素(black element) 典型代表:div,section我們可以自定義它的高度寬度(可...
    喵帕斯_390d閱讀 772評(píng)論 0 0
  • 概念 父級(jí)元素 設(shè)置display:flex; 子元素即按照彈性盒子布局 實(shí)例 flex-direction 子元...
    小乙的乙閱讀 1,054評(píng)論 0 1
  • Flex box布局模型的主要目的是提供更有效率的布局方式,尤其是當(dāng)容器內(nèi)元素的尺寸不固定的時(shí)候更能表現(xiàn)出它的優(yōu)勢(shì)...
    Sketch閱讀 575評(píng)論 0 0

友情鏈接更多精彩內(nèi)容