微信小程序 :flex 布局

微信小程序 View 支持兩種布局方式:Block 和 Flex,所有 View 默認都是 block浮動布局久窟,要使用 flex 布局的話需要顯式的聲明:

display:flex;

概述

1.Flex容器屬性

  • flex-direction 決定元素的排列方向
  • flex-wrap 決定元素如何換行
  • flex-flow flex-directionflex-wrap的簡寫
  • justify-content 元素在主軸上的對齊方式
  • align-items 元素在交叉軸的對齊方式

2.Flex容器內(nèi)元素屬性

  • flex-grow 當有多余空間時,元素的放大比例
  • flex-shrink 當空間不足時笑旺,元素的縮小比例
  • flex-basis 元素在主軸上占據(jù)的空間
  • flexgrow貌虾、shrink 锐借、basis的簡寫
  • order 定義元素的排列順序
  • align-self 定義元素自身的對齊方式

寫一個簡單Demo

wxml:

<view class=“main”>
    <view class="item item1">1</view>
    <view class="item item2">2</view>
    <view class="item item3">3</view>
  </view>

wxss:

 .main { width: 100%; background-color: antiquewhite;}
 .item { height: 100rpx; width: 100rpx;}
 .item1 { background-color: red;}
 .item2 { background-color: dodgerblue;}
 .item3 { background-color: greenyellow;}

效果:

效果圖

備注:誰要要使用flex布局该押,就得在樣式里加上 display: flex

flex-direction

首先是橫向布局和豎向布局疗杉,要設(shè)置屬性 flex-direction ,它有4個可選值:

  • flex-direction: row:從左到右的水平方向為主軸
  • flex-direction: row-reverse:從右到左的水平方向為主軸
  • flex-direction: column:從上到下的垂直方向為主軸
  • flex-direction: column-reverse:從下到上的垂直方向為主軸

我們來看下設(shè)置 row 和 row-reverse 的區(qū)別:


row

row-reverse

justify-content

然后我們要設(shè)置元素在橫向上的布局方向,需要設(shè)置 justify-content 屬性蚕礼,它有5個值可選:

  1. flex-start:主軸起點對齊(默認值)


    flex-start
  2. flex-end:主軸結(jié)束點對齊


    flex-end
  3. center:在主軸中居中對齊


    center
  4. space-between:兩端對齊烟具,除了兩端的子元素分別靠向兩端的容器之外,其他子元素之間的間隔都相等


    space-between
  5. space-around:每個子元素之間的距離相等奠蹬,兩端的子元素距離容器的距離也和其它子元素之間的距離相同


    space-around

align-items

我們要設(shè)置元素在縱向上的布局方向朝聋,需要設(shè)置 align-items 屬性,它有5個值可選:

  1. stretch 填充整個容器(默認值)


    stretch
  2. flex-start 側(cè)軸的起點對齊 (這里我們手動設(shè)置下子 view 的高度罩润,來看的明顯一些)


    flex-start
  3. flex-end 側(cè)軸的終點對齊


    flex-end
  4. center 在側(cè)軸中居中對齊


    center
  5. baseline 以子元素的第一行文字對齊


    baseline

align-self

子 View 還有個屬性 align-self,可以覆蓋父元素的 align-items 屬性翼馆,它有6個值可選:auto | flex-start | flex-end | center | baseline | stretch (auto 為繼承父元素 align-items 屬性割以,其他和 align-items 一致)

比如上面最后一個 baseline 的例子金度,我們把 item3 設(shè)置 align-self:flex-end;

就成了這個樣子:


align-self:flex-end

flex-wrap

此外還有 flex-wrap 屬性,用于控制子 View 是否換行严沥,有3個值可選:

  • nowrap:不換行(默認)
  • wrap:換行
  • wrap-reverse:換行猜极,第一行在最下面

order

子 View 有個 order 屬性,可以控制子元素的排列順序消玄,默認為0跟伏。

比如還是上面那個例子,我們把 item3 設(shè)置 order:-1; 可以把 item3 排在前面


order

flex-grow

layout.wxss中修改代碼如下:在item1中增加: flex-grow: 1翩瓜,在item3中增加: flex-grow: 2受扳,表示在一行中如果有剩余空間的話,item3之外的子view占1份空間兔跌,而item3子view占2份空間(可以理解為剩余空間item3最多可以占2份空間)勘高。

flex-shrink

layout.wxss中再增加4個子view并修改代碼如下:i3的flex-shrink為0( flex-shrink: 0),其余子view為1( flex-shrink: 1)坟桅,這表示當空間不足時所有子view都等比縮小华望,但是i3的view保持大小不變,編譯運行仅乓,效果如圖11所示


flex-shrink

flex-basis

layout.wxss中修改代碼如下:其他代碼保持不變不變赖舟,編譯運行,效果如圖12所示

.i3{
    flex-shrink: 0;
    flex-basis: 200rpx
}
flex-basis

flex

flex是grow夸楣,shink宾抓,basis幾個屬性的合并,layout.wxss中修改代碼如下:其他代碼保持不變不變裕偿,編譯運行洞慎,效果和圖12保持一樣

.i3{
    flex:0 0 200rpx
}

flex-flow

flex-flow: wrap row,編譯運行結(jié)果:如圖5所示嘿棘,flex-flow相當于 flex-direction和flex-wrap兩個屬性的組合

                            ----------flex 常用布局就這些—————
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末劲腿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鸟妙,更是在濱河造成了極大的恐慌焦人,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件重父,死亡現(xiàn)場離奇詭異花椭,居然都是意外死亡,警方通過查閱死者的電腦和手機房午,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門矿辽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事袋倔〉癖危” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵宾娜,是天一觀的道長批狐。 經(jīng)常有香客問我,道長前塔,這世上最難降的妖魔是什么嚣艇? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮华弓,結(jié)果婚禮上食零,老公的妹妹穿的比我還像新娘。我一直安慰自己该抒,他們只是感情好慌洪,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凑保,像睡著了一般冈爹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上欧引,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天频伤,我揣著相機與錄音,去河邊找鬼芝此。 笑死憋肖,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的婚苹。 我是一名探鬼主播岸更,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼膊升!你這毒婦竟也來了怎炊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤廓译,失蹤者是張志新(化名)和其女友劉穎评肆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體非区,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡瓜挽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了征绸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片久橙。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡俄占,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出淆衷,到底是詐尸還是另有隱情颠放,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布吭敢,位于F島的核電站,受9級特大地震影響暮芭,放射性物質(zhì)發(fā)生泄漏鹿驼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一辕宏、第九天 我趴在偏房一處隱蔽的房頂上張望畜晰。 院中可真熱鬧,春花似錦瑞筐、人聲如沸凄鼻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽块蚌。三九已至,卻和暖如春膘格,著一層夾襖步出監(jiān)牢的瞬間峭范,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工瘪贱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纱控,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓菜秦,卻偏偏與公主長得像甜害,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子球昨,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容