uni-app布局之display: flex

最近開(kāi)始學(xué)習(xí)uni-app茬射,其中頁(yè)面布局是很重要的一塊折晦,于是我從display開(kāi)始進(jìn)行研究货抄。在css的發(fā)展過(guò)程中display有幾十種寫法教沾,有興趣的同學(xué)可以參考這篇文章
https://www.cnblogs.com/gongyijie/p/8358836.html
彈性布局flex是目前使用很廣泛也很強(qiáng)大的布局方法之一蒲跨。

以下內(nèi)容我主要參考了這篇文章,有興趣的可以去看看
https://www.cnblogs.com/Webzhoushifa/p/9510856.html

這里有我轉(zhuǎn)載了一篇講解更詳細(xì)的flex文章
http://www.reibang.com/p/a5df93c89702

我們主要涉及到以下6個(gè)屬性

flex-direction 容器內(nèi)項(xiàng)目的排列方向(默認(rèn)橫向排列)
  • row 橫向布局
  • column 豎直布局
justify-content 項(xiàng)目在主軸上的對(duì)齊方式
  • flex-start 主軸從開(kāi)始位置開(kāi)始排列
  • flex-end 主軸從結(jié)束位置開(kāi)始排列
  • center 主軸居中排列
  • space-between 主軸兩頭對(duì)齊等間距排列
align-items 項(xiàng)目在交叉軸上如何對(duì)齊
  • flex-start 交叉軸從開(kāi)始位置開(kāi)始排列
  • flex-end 交叉軸從結(jié)束位置開(kāi)始排列
  • center 交叉軸居中排列
  • stretch 交叉軸拉伸鋪滿
flex-wrap 容器內(nèi)項(xiàng)目換行方式
  • inherit 繼承父試圖的換行規(guī)則
  • initial 初始的
  • nowrap 不換行(默認(rèn))
  • wrap 換行
  • wrap-reverse 換行
flex-flow 是flex-direction和flex-wrap的簡(jiǎn)寫方式
align-content 定義了多根軸線的對(duì)齊方式授翻。如果項(xiàng)目只有一根軸線則不起作用
  • flex-start 靠近開(kāi)始位置排列
  • flex-end 靠近結(jié)束位置排列
  • center 居中排列
  • space-around 等間距排列(默認(rèn))
  • space-between 兩頭對(duì)齊等間距排列
  • inherit 集成父試圖的值
  • initial 初始值
  • stretch 拉伸鋪滿

一 或悲、flex-direction justify-content align-items配合使用

通過(guò)如下幾種場(chǎng)景來(lái)學(xué)習(xí)這三個(gè)屬性的用法。

1堪唐、默認(rèn)的布局
<template>
    <view>
        <view class="content">
            <view class="a">block</view>
            <view class="a">blockblock</view>
            <view class="a">blockblockblock</view>
            <view class="a">blockblock</view>
            <view class="a">block</view>
        </view>
        
    </view>
</template>

<script>    
    export default{
        data() {
            return {
                
            }
        },
        methods: {
            
        }
    }
</script>

<style>
    .content {
        background-color: #C8C7CC;
        width: 100vw;
        height: 100vh;
    }
    .a {
        height: 100upx;
        background-color: #4CD964;
        border: 1upx solid #FFFFFF;
    }

</style>
display-default.jpg
2巡语、使用flex豎直布局靠左側(cè)對(duì)齊
<template>
    <view>
        <view class="content">
            <view class="a">block</view>
            <view class="a">blockblock</view>
            <view class="a">blockblockblock</view>
            <view class="a">blockblock</view>
            <view class="a">block</view>
        </view>
        
    </view>
</template>

<script>    
    export default{
        data() {
            return {
                
            }
        },
        methods: {
            
        }
    }
</script>

<style>
    .content {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        background-color: #C8C7CC;
        width: 100vw;
        height: 100vh;
    }
    .a {
        height: 100upx;
        background-color: #4CD964;
        border: 1upx solid #FFFFFF;
    }

</style>
flex-01.jpg
3、主軸從結(jié)束為止排列淮菠,交叉軸居中排列
<template>
    <view>
        <view class="content">
            <view class="a">block</view>
            <view class="a">blockblock</view>
            <view class="a">blockblockblock</view>
            <view class="a">blockblock</view>
            <view class="a">block</view>
        </view>
        
    </view>
</template>

<script>    
    export default{
        data() {
            return {
                
            }
        },
        methods: {
            
        }
    }
</script>

<style>
    .content {
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        align-items: center;
        background-color: #C8C7CC;
        width: 100vw;
        height: 100vh;
    }
    .a {
        height: 100upx;
        background-color: #4CD964;
        border: 1upx solid #FFFFFF;
    }

</style>
flex-02.jpg

二男公、flex-wrap換行規(guī)則

1、默認(rèn)為不換行
<template>
    <view>
        <view class="content">
            <view class="a">block-01</view>
            <view class="a">block-02</view>
            <view class="a">block-03</view>
            <view class="a">block-04</view>
            <view class="a">block-05</view>
            <view class="a">block-06</view>
            <view class="a">block-07</view>
            <view class="a">block-08</view>
            <view class="a">block-09</view>
            <view class="a">block-10</view>
        </view>
        
    </view>
</template>

<script>    
    export default{
        data() {
            return {
                
            }
        },
        methods: {
            
        }
    }
</script>

<style>
    .content {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
        flex-wrap: nowrap;
        background-color: #C8C7CC;
        width: 100vw;
        height: 100vh;
    }
    .a {
        height: 18vh;
        background-color: #4CD964;
        border: 1vh solid #FFFFFF;
    }

</style>

我們將flex-wrap設(shè)置為inherit和initial時(shí)顯示效果都是一樣的合陵,使用了默認(rèn)不換行的規(guī)則枢赔,父試圖也沒(méi)有單獨(dú)設(shè)置換行規(guī)則,那么也是使用默認(rèn)不換行的規(guī)則

flex-03.jpg

即使我們?cè)O(shè)置了高度拥知,但是還是被壓縮了

2踏拜、換行wrap
<template>
    <view>
        <view class="content">
            <view class="a">block-01</view>
            <view class="a">block-02</view>
            <view class="a">block-03</view>
            <view class="a">block-04</view>
            <view class="a">block-05</view>
            <view class="a">block-06</view>
            <view class="a">block-07</view>
            <view class="a">block-08</view>
            <view class="a">block-09</view>
            <view class="a">block-10</view>
        </view>
        
    </view>
</template>

<script>    
    export default{
        data() {
            return {
                
            }
        },
        methods: {
            
        }
    }
</script>

<style>
    .content {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
        flex-wrap: wrap;
        background-color: #C8C7CC;
        width: 100vw;
        height: 100vh;
    }
    .a {
        height: 18vh;
        background-color: #4CD964;
        border: 1vh solid #FFFFFF;
    }

</style>
flex-04.jpg

后面的元素被擠到了第二列

3、換行wrap-reverse
<template>
    <view>
        <view class="content">
            <view class="a">block-01</view>
            <view class="a">block-02</view>
            <view class="a">block-03</view>
            <view class="a">block-04</view>
            <view class="a">block-05</view>
            <view class="a">block-06</view>
            <view class="a">block-07</view>
            <view class="a">block-08</view>
            <view class="a">block-09</view>
            <view class="a">block-10</view>
        </view>
        
    </view>
</template>

<script>    
    export default{
        data() {
            return {
                
            }
        },
        methods: {
            
        }
    }
</script>

<style>
    .content {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
        flex-wrap: wrap-reverse;
        background-color: #C8C7CC;
        width: 100vw;
        height: 100vh;
    }
    .a {
        height: 18vh;
        background-color: #4CD964;
        border: 1vh solid #FFFFFF;
    }

</style>
flex-05.jpg

前面的元素被擠到了第二列

三低剔、flex-flow

1执隧、默認(rèn)效果(inherit、initial户侥、space-around)

<template>
    <view>
        <view class="content">
            <view class="a">block-01</view>
            <view class="a">block-02</view>
            <view class="a">block-03</view>
            <view class="a">block-04</view>
            <view class="a">block-05</view>
            <view class="a">block-06</view>
            <view class="a">block-07</view>
            <view class="a">block-08</view>
            <view class="a">block-09</view>
            <view class="a">block-10</view>
        </view>
        
    </view>
</template>

<script>    
    export default{
        data() {
            return {
                
            }
        },
        methods: {
            
        }
    }
</script>

<style>
    .content {
        display: flex;
        flex-flow: column wrap-reverse;
        justify-content: flex-start;
        align-items: center;
        background-color: #C8C7CC;
        width: 100vw;
        height: 100vh;
    }
    .a {
        height: 18vh;
        background-color: #4CD964;
        border: 1vh solid #FFFFFF;
    }

</style>

這是一種簡(jiǎn)寫模式镀琉,同flex-05.jpg

四、align-content

1蕊唐、默認(rèn)效果(inherit屋摔、initial、space-around)

<template>
    <view>
        <view class="content">
            <view class="a">block-01</view>
            <view class="a">block-02</view>
            <view class="a">block-03</view>
            <view class="a">block-04</view>
            <view class="a">block-05</view>
            <view class="a">block-06</view>
            <view class="a">block-07</view>
            <view class="a">block-08</view>
            <view class="a">block-09</view>
            <view class="a">block-10</view>
            <view class="a">block-11</view>
        </view>
        
    </view>
</template>

<script>    
    export default{
        data() {
            return {
                
            }
        },
        methods: {
            
        }
    }
</script>

<style>
    .content {
        display: flex;
        flex-flow: column wrap;
        align-content: inherit;
        justify-content: flex-start;
        align-items: center;
        background-color: #C8C7CC;
        width: 100vw;
        height: 100vh;
    }
    .a {
        height: 18vh;
        background-color: #4CD964;
        border: 1vh solid #FFFFFF;
    }

</style>
space-around.png
2替梨、flex-start
flex-start.png
3钓试、flex-end
flex-end.png
4、center
center.png
5副瀑、space-between
space-between.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末弓熏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子糠睡,更是在濱河造成了極大的恐慌挽鞠,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異信认,居然都是意外死亡材义,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門嫁赏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)其掂,“玉大人,你說(shuō)我怎么就攤上這事潦蝇】畎荆” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵攘乒,是天一觀的道長(zhǎng)华烟。 經(jīng)常有香客問(wèn)我,道長(zhǎng)持灰,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任负饲,我火速辦了婚禮堤魁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘返十。我一直安慰自己妥泉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布洞坑。 她就那樣靜靜地躺著盲链,像睡著了一般。 火紅的嫁衣襯著肌膚如雪迟杂。 梳的紋絲不亂的頭發(fā)上刽沾,一...
    開(kāi)封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音排拷,去河邊找鬼侧漓。 笑死,一個(gè)胖子當(dāng)著我的面吹牛监氢,可吹牛的內(nèi)容都是我干的布蔗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼浪腐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼纵揍!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起议街,我...
    開(kāi)封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤泽谨,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體隔盛,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡犹菱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吮炕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腊脱。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖龙亲,靈堂內(nèi)的尸體忽然破棺而出陕凹,到底是詐尸還是另有隱情,我是刑警寧澤鳄炉,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布杜耙,位于F島的核電站,受9級(jí)特大地震影響拂盯,放射性物質(zhì)發(fā)生泄漏佑女。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一谈竿、第九天 我趴在偏房一處隱蔽的房頂上張望团驱。 院中可真熱鬧,春花似錦空凸、人聲如沸嚎花。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)紊选。三九已至,卻和暖如春道逗,著一層夾襖步出監(jiān)牢的瞬間兵罢,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工滓窍, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留趣些,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓贰您,卻偏偏與公主長(zhǎng)得像坏平,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锦亦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354