摘要:來(lái)源微信小程序使用的一些基礎(chǔ)樣式屬性作者布局相對(duì)于以前我們經(jīng)常所用到的布局方式要好的很多,在做微信小程序的時(shí)候要既能符合微信小程序的文檔開(kāi)發(fā)要求,又能使用不同以往的居中方式并減少的相關(guān)樣式聲明。
來(lái)源:微信小程序使用flex的一些基礎(chǔ)樣式屬性
作者:Nazi
Flex布局相對(duì)于以前我們經(jīng)常所用到的布局方式要好的很多,在做微信小程序的時(shí)候要既能符合微信小程序的文檔開(kāi)發(fā)要求,又能使用不同以往的居中方式并減少css的相關(guān)樣式聲明。
先來(lái)看看關(guān)于flex的一張圖:
從上面可以看到一些flexbox的相關(guān)信息,
main axis 和 cross axis 指的是flexbox內(nèi)部flex項(xiàng)目(flex item)的排列方向,通俗點(diǎn)說(shuō)就是,里面的flex項(xiàng)目是按照橫軸或者縱軸排列的順序方向。
main start 和 main end 是指項(xiàng)目的開(kāi)始和項(xiàng)目的結(jié)束是按照排列方向的起點(diǎn)和終點(diǎn)。
再來(lái)看看flex的相關(guān)屬性:
我們給定一個(gè)結(jié)構(gòu):
...
在微信小程序里面可以是這樣的結(jié)構(gòu):
...
當(dāng)我們要用時(shí)這個(gè)布局的時(shí)候?qū)τ谕鈱拥慕Y(jié)構(gòu),我們對(duì)他的css樣式設(shè)定:
接下來(lái)我們就需要來(lái)規(guī)定這個(gè)item排列的方向了,依舊對(duì)外層結(jié)構(gòu)css設(shè)定:
.container{ display: flex; /*or inline-flex*/ flex-direction: row; }
flex-direction這個(gè)屬性是用來(lái)規(guī)定flex項(xiàng)目在軸方向上面排列的順序,
他有這樣幾個(gè)屬性:
flex-direction: row | row-reverse | column | column-reverse;
row
如果規(guī)定的方向是 ltr(left to right)項(xiàng)目一次從左往右排列,
如果規(guī)定的方向是 rtl(right to left)項(xiàng)目一次從右往左排列,
row是默認(rèn)值。
row-reverse
如果規(guī)定的方向是 ltr(left to right)項(xiàng)目一次從右往左排列,
如果規(guī)定的方向是 rtl(right to left)項(xiàng)目一次從左往右排列,
row 和 row-reverse 是相反的。
column 跟row是類(lèi)似的,只不過(guò)是從上到下的方向排列的。
column-reverse 跟row-reverse 是類(lèi)似的,只不過(guò)是從下到上的方向排列的。
對(duì)于有時(shí)候,并不想讓所有的項(xiàng)目都在一行排列的話(多行顯示),我們添加flex-wrap:
.container{ display: flex; /*or inline-flex*/ flex-direction: row; flex-wrap:wrap; }
flex-wrap是決定項(xiàng)目是否多行顯示的屬性,項(xiàng)目默認(rèn)情況下是在一行下顯示的。
flex-wrap: nowrap | wrap | wrap-reverse;
nowrap 指的是在一行顯示不換行;
wrap 指的是多行顯示;
wrap-reverse 指的是多行顯示,但是跟規(guī)定排列方向相反;
flex-flow是 flex-direction 和 flex-wrap 的縮寫(xiě)
flex-flow: <‘flex-direction’> || <‘flex-wrap’>
上面css即:
.container{ display: flex; /*or inline-flex*/ flex-flow:row wrap; }
在我們一些需要構(gòu)建的布局里,我們還需要去讓他能夠自由的伸縮,這也是flex布局的優(yōu)勢(shì)之一,能夠極大的方便我們?nèi)ヌ嵘省?/p>
用于在主軸上對(duì)齊伸縮的項(xiàng)目屬性:justify-content。他的屬性有:
justify-content: flex-start | flex-end | center | space-between | space-around;
不同屬性值下他的表現(xiàn):
css樣式為:
.container{ width: 100%; height: 400px; background-color: #ccc; display: flex; /*or inline-flex*/ flex-flow:row wrap; justify-content:flex-start; } .item{ flex:0 0 30%; } .item1{background-color:#0074e0;} .item{background-color:#008c00;} .item3{background-color:#be0000;}
flex-start
flex-end
center
space-between
space-around
flex-start(默認(rèn)值),項(xiàng)目向起始位置靠齊,第一個(gè)項(xiàng)目所在軸的起點(diǎn)位置對(duì)齊,后面的項(xiàng)目與前一個(gè)項(xiàng)目的邊外邊對(duì)齊。
flex-end,項(xiàng)目向結(jié)束位置,最后一個(gè)項(xiàng)目所在軸的終點(diǎn)位置對(duì)齊,前面的項(xiàng)目與后一個(gè)項(xiàng)目的邊外邊對(duì)齊。
center,項(xiàng)目向一行的中間位置對(duì)齊,可以說(shuō)成是此行的居中對(duì)齊。在某些居中需求下的css樣式布局既可以選擇這個(gè)樣式聲明
space-between,項(xiàng)目會(huì)平均的分布在一行里面。項(xiàng)目的第一項(xiàng)和最后一項(xiàng)會(huì)與軸的起點(diǎn)和終點(diǎn)邊靠齊。其他的項(xiàng)目則平均分布早剩余的空間里面。
space-around,項(xiàng)目會(huì)平均分布在一行里。兩端會(huì)保留一半的空間。
在多行存在的情況,有一個(gè)和justify-content類(lèi)似的屬性,只不過(guò)他是作用在相對(duì)于軸的垂直方向上的。屬性值如下:
align-content: flex-start | flex-end | center | space-between | space-around | stretch;
不同屬性值下的表現(xiàn):(橫軸上規(guī)定的是 flex-start)
css樣式為:
.container{ width: 100%; height: 400px; background-color: #ccc; display: flex;/*or inline-flex*/ flex-flow:row wrap; justify-content:flex-start; align-content: flex-start; } .item{ flex:0 0 30%; min-height: 100px; } .item1,.item6{background-color:#0074e0;} .item2{background-color:#008c00;} .item5{background-color:#234567;} .item3,.item4{background-color:#be0000;}
flex-start
flex-end
center
space-between
space-around
flex-start(默認(rèn)值),項(xiàng)目向起始位置靠齊,第一個(gè)項(xiàng)目所在軸的起點(diǎn)位置對(duì)齊,后面的項(xiàng)目與前一個(gè)項(xiàng)目的邊外邊對(duì)齊。
flex-end,項(xiàng)目向結(jié)束位置,最后一個(gè)項(xiàng)目所在軸的終點(diǎn)位置對(duì)齊,前面的項(xiàng)目與后一個(gè)項(xiàng)目的邊外邊對(duì)齊。
center,項(xiàng)目向一行的中間位置對(duì)齊,可以說(shuō)成是此行的居中對(duì)齊。在某些居中需求下的css樣式布局既可以選擇這個(gè)樣式聲明
space-between,項(xiàng)目會(huì)平均的分布在一行里面。項(xiàng)目的第一項(xiàng)和最后一項(xiàng)會(huì)與軸的起點(diǎn)和終點(diǎn)邊靠齊。其他的項(xiàng)目則平均分布早剩余的空間里面。
space-around,項(xiàng)目會(huì)平均分布在一行里。兩端會(huì)保留一半的空間。
雖然方式跟justify-content是一樣的,但是因?yàn)檩S的不同起始點(diǎn)和終點(diǎn)是不同的,所以顯示的方式是一直的,但是方向上的效果看起來(lái)會(huì)有點(diǎn)差異。
關(guān)于stretch 由于上面的項(xiàng)目設(shè)定了高度,當(dāng)項(xiàng)目的高度不是固定值得時(shí)候,stretch的表現(xiàn)如下:
也就是說(shuō)側(cè)軸的長(zhǎng)度是不是固定值得時(shí)候,各行會(huì)擴(kuò)大占據(jù)剩下的空間。
下期,我會(huì)介紹兩個(gè)屬性,align-items 和 align-self
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/66314.html
摘要:來(lái)源微信小程序使用的一些基礎(chǔ)樣式屬性作者接下來(lái)再介紹兩個(gè)屬性,和是在所有項(xiàng)目上的對(duì)齊方式。再次感謝指出錯(cuò)誤。再來(lái)看看下面這個(gè)的結(jié)構(gòu)如下樣式如下僅僅只是添加下一條樣式,然后增加項(xiàng)目個(gè)數(shù),修改下外框的寬高度就有這樣的效果顯示。 來(lái)源:微信小程序使用flex的一些基礎(chǔ)樣式屬性作者:Nazi 接下來(lái) 再介紹兩個(gè)屬性,align-items 和 align-self align-items: f...
摘要:來(lái)源微信小程序使用的一些基礎(chǔ)樣式屬性作者接下來(lái)再介紹兩個(gè)屬性,和是在所有項(xiàng)目上的對(duì)齊方式。再次感謝指出錯(cuò)誤。再來(lái)看看下面這個(gè)的結(jié)構(gòu)如下樣式如下僅僅只是添加下一條樣式,然后增加項(xiàng)目個(gè)數(shù),修改下外框的寬高度就有這樣的效果顯示。 來(lái)源:微信小程序使用flex的一些基礎(chǔ)樣式屬性作者:Nazi 接下來(lái) 再介紹兩個(gè)屬性,align-items 和 align-self align-items: f...
摘要:來(lái)源微信小程序使用的一些基礎(chǔ)樣式屬性作者布局相對(duì)于以前我們經(jīng)常所用到的布局方式要好的很多,在做微信小程序的時(shí)候要既能符合微信小程序的文檔開(kāi)發(fā)要求,又能使用不同以往的居中方式并減少的相關(guān)樣式聲明。 來(lái)源:微信小程序使用flex的一些基礎(chǔ)樣式屬性作者:Nazi Flex布局相對(duì)于以前我們經(jīng)常所用到的布局方式要好的很多,在做微信小程序的時(shí)候要既能符合微信小程序的文檔開(kāi)發(fā)要求,又能使用不同以往...
閱讀 2185·2021-09-02 15:11
閱讀 1507·2019-08-30 15:43
閱讀 2073·2019-08-29 13:48
閱讀 2790·2019-08-26 13:55
閱讀 2100·2019-08-23 15:09
閱讀 2896·2019-08-23 14:40
閱讀 3421·2019-08-23 14:23
閱讀 2632·2019-08-23 14:20