Flex布局在(zài)小程序的(de)使用 - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不(bù)管是(shì)網站,軟件還是(shì)小程序,都要(yào / yāo)直接或間接能爲(wéi / wèi)您産生價值,我們在(zài)追求其視覺表現的(de)同時(shí),更側重于(yú)功能的(de)便捷,營銷的(de)便利,運營的(de)高效,讓網站成爲(wéi / wèi)營銷工具,讓軟件能切實提升企業内部管理水平和(hé / huò)效率。優秀的(de)程序爲(wéi / wèi)後期升級提供便捷的(de)支持!

您當前位置>首頁 » 新聞資訊 » 小程序相關 >

Flex布局在(zài)小程序的(de)使用

發表時(shí)間:2022-9-6

發布人(rén):融晨科技

浏覽次數:75

Flex布局是(shì)一種十分靈活方便的(de)布局方式,目前主流的(de)現代浏覽器基本都實現了(le/liǎo)對Flex布局的(de)完全支持。而(ér)在(zài)微信小程序中,IOS端使用的(de)渲染引擎WKWebView和(hé / huò)安卓端使用的(de)X5 ,也(yě)都實現了(le/liǎo)對Flex的(de)支持。所以(yǐ)爲(wéi / wèi)了(le/liǎo)在(zài)小程序開發中更方便地(dì / de)布局,有必要(yào / yāo)來(lái)詳細了(le/liǎo)解下Flex布局在(zài)小程序的(de)使用。本文将針對Flex布局的(de)各個(gè)屬性進行介紹,并直接使用wxss來(lái)編寫例子(zǐ),運行環境是(shì)小程序的(de)開發者工具。

Flex布局的(de)基本概念

Flex布局直接應用于(yú)一個(gè)Flex容器,布局的(de)對象是(shì)容器中的(de)各個(gè)項目元素(“item”)。項目元素布局的(de)核心概念在(zài)于(yú)兩條軸:主軸和(hé / huò)交叉軸,通過控制項目元素在(zài)主軸、交叉軸上(shàng)的(de)排列方式進行布局,參見下圖:

這(zhè)裏要(yào / yāo)注意兩條軸的(de)方向不(bù)是(shì)固定的(de)(可以(yǐ)通過flex-direction來(lái)控制);此外一個(gè)Flex容器裏可以(yǐ)再包含Flex容器,也(yě)就(jiù)是(shì)能擁有多根主軸和(hé / huò)交叉軸。

Flex容器屬性

容器屬性有6個(gè):

  • flex-direction
  • flex-wrap
  • flex-flow
  • justify-content
  • align-items
  • align-content

flex-direction

設定主軸方向:

  • row →(默認)
  • row-reverse ←
  • column ↓
  • column-reverse↑

flex-wrap

規定如果容器在(zài)主軸方向無法容下所有項目,主軸上(shàng)的(de)項目如何換行(flex-direction爲(wéi / wèi)column和(hé / huò)column-reverse時(shí),就(jiù)是(shì)“換列”了(le/liǎo)):

  • nowrap(默認),即不(bù)作換行,各個(gè)項目相接觸時(shí)會擠壓使寬度變小
  • wrap:換行,正常從上(shàng)到(dào)下
  • wrap-reverse:換行,隻是(shì)各行在(zài)交叉軸上(shàng)的(de)排列方向和(hé / huò)wrap時(shí)相反

flex-flow

flex-direction和(hé / huò)flex-wrap的(de)簡寫,默認值爲(wéi / wèi)“row wrap”。

justify-content

所有項目在(zài)主軸上(shàng)對齊方式:

  • none(默認)
  • center:在(zài)主軸上(shàng)居中
  • flex-start:主軸起點對齊
  • fex-end:主軸終點對齊
  • space-between:兩端對齊,項目間間隔相等
  • space-around:各項目兩側間隔相等

align-items

所有項目在(zài)交叉軸上(shàng)對齊方式:

  • stretch(默認),即項目取auto大(dà)小時(shí)拉伸以(yǐ)占滿容器的(de)在(zài)交叉軸方向上(shàng)的(de)大(dà)小
  • center:在(zài)交叉軸上(shàng)居中
  • flex-start:交叉軸起點對齊
  • flex-end: 交叉軸終點對齊
  • baseline:各項目第一行文字的(de)基線對齊

align-content

定義了(le/liǎo)多根主軸的(de)對齊方式,如果項目隻有一根主軸則不(bù)起作用,多根主軸一般會在(zài)主軸上(shàng)折行時(shí)出(chū)現:

  • stretch(默認),即auto大(dà)小時(shí)主軸線上(shàng)的(de)項目會拉伸來(lái)占滿整個(gè)交叉軸。
  • center:在(zài)交叉軸上(shàng)居中
  • flex-start:交叉軸起點對齊
  • flex-end: 交叉軸終點對齊
  • space-between:兩端對齊,項目間間隔相等
  • space-around:各項目兩側間隔相等

Flex項目屬性

項目屬性有6個(gè):

  • order
  • flex-basis
  • flex-grow
  • flex-shrink
  • flex
  • align-self

order

定義項目排列序号;默認爲(wéi / wèi)0,可爲(wéi / wèi)負:

flex-basis

在(zài)Flex項目自适應放大(dà)縮小之(zhī)前,項目占據的(de)主軸空間的(de)基值。

默認值爲(wéi / wèi)auto,即項目的(de)本來(lái)大(dà)小:

flex-grow

注意該屬性指定的(de)是(shì)項目對剩餘空間的(de)瓜分比例,這(zhè)裏有兩個(gè)關鍵點:

  • 容器在(zài)主軸上(shàng)要(yào / yāo)有剩餘空間
  • 該屬性是(shì)對剩餘空間的(de)瓜分,也(yě)即項目的(de)最終大(dà)小是(shì)各項目的(de)flex-basis大(dà)小、再加上(shàng)瓜分得到(dào)的(de)大(dà)小

默認爲(wéi / wèi)0,即如果存在(zài)剩餘空間也(yě)不(bù)放大(dà)(grow),不(bù)可爲(wéi / wèi)負:

flex-shrink:

空間不(bù)足時(shí)項目對縮小份額的(de)瓜分比例,還是(shì)有兩個(gè)關鍵點:

  • 容器在(zài)主軸上(shàng)空間不(bù)足以(yǐ)放下所有的(de)項目
  • 空間不(bù)足可以(yǐ)讓項目縮小,而(ér)該屬性就(jiù)是(shì)對縮小份額的(de)瓜分,也(yě)即項目的(de)最終大(dà)小是(shì)各項目的(de)flex-basis大(dà)小、再減去瓜分得到(dào)的(de)縮小份額

默認爲(wéi / wèi)1,即如果空間不(bù)足項目将縮小,不(bù)可負:

flex

flex-grow, flex-shrink 和(hé / huò) flex-basis的(de)簡寫。

默認值爲(wéi / wèi)“0 1 auto”,還有兩個(gè)值auto即“1 1 auto”、none即“0 0 auto”。

align-self

讓一個(gè)項目有與其他(tā)項目不(bù)同的(de)交叉軸對齊方式,主要(yào / yāo)用來(lái)覆蓋align-items屬性。

默認值是(shì)auto,即繼承父元素的(de)align-items屬性,若無父元素則等同于(yú)stretch;其他(tā)值效果和(hé / huò)align-items一樣。

總結

Flex布局也(yě)叫彈性布局,個(gè)人(rén)理解所謂“彈性”主要(yào / yāo)體現在(zài)Flex項目的(de)自伸縮上(shàng)。主軸上(shàng)的(de)自伸縮主要(yào / yāo)通過flex-grow、flex-shrink來(lái)控制,交叉軸上(shàng)的(de)自伸縮則體現在(zài)align-*屬性的(de)默認值stretch上(shàng)。

一些注意點

  • 一些屬性會在(zài)對Flex項目上(shàng)無效:column-*屬性、float 和(hé / huò) clear、vertical-align 。
  • 在(zài)Flex容器使用 float 會導緻Flex布局失效。

參考

Flex 布局教程


相關案例查看更多