1. WXSS 檔案介紹
WXSS 檔案是小程式的樣式檔案,具有 CSS 大部分特性。同時為了更适合開發微信小程式,WXSS 對 CSS 進行了擴充以及修改。
- 尺寸機關
- 樣式導入
1.1 尺寸機關 rpx
rpx(responsive pixel): 可以根據螢幕寬度進行自适應尺寸機關。
- 開發中規定螢幕寬度為750rpx,以 iPhone6 為基準,螢幕寬度為375px,共有750個實體像素,則750rpx = 375px =750實體像素,即1rpx=0.5px=1實體像素。
02_視圖層_WXSS
1.2 樣式導入
使用 @import 語句可以導入外聯樣式表,@import 後跟需要導入的外聯樣式表的 [相對路徑],并用 ; 表示語句結束。
内聯樣式:
- style:動态樣式,運作時解析
- class:靜态樣式
2. flex 布局,容器屬性
2.1 display 屬性,flex 布局方式
主軸與側軸
- 主軸:main axis 朝向軸
- 側軸:cross axis 交叉軸
2.2 flex-direction 屬性,主軸的方向
flex-direction: row | row-reverse | column | column-reverse;
- row:主軸從左至右,控件水準排列
- row-reverse:主軸從右至左,控件水準排列
- column:主軸從上至下,控件豎直排列
- column-reverse:主軸從下至上,控件豎直排列
2.3 flex-wrap 屬性
預設情況下,控件都排在軸線上。當一條軸線排不下時,flex-wrap 屬性規定控件如何換行。
- nowrap:不換行,超出的不顯示
- wrap:向下折行,超出的在下邊另起一行
- wrap-reverse:向上折行,超出的在上邊另起一行
2.4 flex-flow 屬性
flex-flow 屬性是 flex-direction 屬性和 flex-wrap 屬性的簡寫形式,預設值為 row nowrap。
flex-flow: <flex-direction> || <flex-wrap>;
2.5 justify-content 屬性
justify-content 屬性定義了控件在主軸上的對齊方式。
- flex-start:主軸起點對齊
- flex-end:主軸終點對齊
- center:主軸居中對齊
- space-between:兩端對齊,控件間間隔相等
- space-around:每個控件兩側空隙相等,是以控件之間的空隙比控件與邊框大一倍
2.6 align-items 屬性
align-items 屬性定義項目在交叉軸上如何對齊。
- flex-start:交叉軸的起點對齊
- flex-end:交叉軸的終點對齊
- center:交叉軸居中對齊
- baseline:控件的第一行文字的基線對齊
- stretch:如果項目未設定高度或設為auto,将占滿整個容器的高度
2.7 align-content 屬性
align-content屬性定義了多根軸線的對齊方式。如果項目隻有一根軸線,該屬性不起作用。
- flex-start:與交叉軸的起點對齊
- flex-end:與交叉軸的終點對齊
- center:與交叉軸的中點對齊
- space-between:與交叉軸兩端對齊,軸線之間的間隔平均分布
- space-around:每根軸線兩側的間隔都相等。是以,軸線之間的間隔比軸線與邊框的間隔大一倍
- stretch:軸線占滿整個交叉軸
02_視圖層_WXSS
3. flex 布局,控件屬性
3.1 order 屬性
order 屬性定義項目的排列順序。數值越小,排列越靠前,預設為0。
3.2 flex-grow 屬性
flex-grow 屬性定義項目的放大比例,預設為0,即如果存在剩餘空間,也不放大。
如果所有項目的 flex-grow 屬性都為1,則它們将等分剩餘空間(如果有的話)。如果一個項目的 flex-grow 屬性為2,其他項目都為1,則前者占據的剩餘空間将比其他項多一倍。
3.3 flex-shrink 屬性
flex-shrink屬性定義了項目的縮小比例,預設為1,即如果空間不足,該項目将縮小。
如果所有項目的 flex-shrink 屬性都為1,當空間不足時,都将等比例縮小。如果一個項目的 flex-shrink 屬性為0,其他項目都為1,則空間不足時,前者不縮小。
3.4 flex-basis 屬性
flex-basis 屬性定義了在配置設定多餘空間之前,項目占據的主軸空間(main size)。浏覽器根據這個屬性,計算主軸是否有多餘空間。它的預設值為 auto,即項目的本來大小。
它可以設為跟 width 或 height 屬性一樣的值(比如350px),則項目将占據固定空間。
3.5 flex 屬性
flex屬性是 flex-grow, flex-shrink 和 flex-basis 的簡寫,預設值為0 1 auto。後兩個屬性可選。
flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
該屬性有兩個快捷值:auto (1 1 auto) 和 none (0 0 auto)。
建議優先使用這個屬性,而不是單獨寫三個分離的屬性,因為浏覽器會推算相關值。
3.6 align-self 屬性
align-self 屬性允許單個項目有與其他項目不一樣的對齊方式,可覆寫 align-items 屬性。預設值為 auto,表示繼承父元素的 align-items 屬性,如果沒有父元素,則等同于 stretch。
該屬性可能取6個值,除了 auto,其他都與 align-items 屬性完全一緻。