天天看點

02_視圖層_WXSS

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 屬性完全一緻。