微信小程序:WXSS 樣式
一、WXSS 樣式
XSS
具有 CSS
大部分的特性,小程序在 WXSS
也做了一些擴充和修改。
1,新增了尺寸單位:
在寫 CSS
樣式時,開發者需要考慮到手機設備的屏幕會有不同的寬度和設備像素比,采用一些技巧來換算一些像素單位。WXSS
在底層支持新的尺寸單位 rpx
,開發者可以免去換算的煩惱,只要交給小程序底層來換算即可,由於換算采用的浮點數運算,所以運算結果會和預期結果有一點點偏差。
2,提供了全局的樣式和局部樣式:
和前邊 app.json
, page.json
的概念相同,你可以寫一個 app.wxss
作為全局樣式,會作用於當前小程序的所有頁面,局部頁面樣式 page.wxss
僅對當前頁面生效。
3,此外 WXSS
僅支持部分 CSS
選擇器。
二、WXSS 用法
WXSS(WeiXin Style Sheets)是一套樣式語言,用於描述 WXML 的組件樣式。
WXSS 用來決定 WXML 的組件應該怎么顯示。
為了適應廣大的前端開發者,WXSS 具有 CSS 大部分特性。同時為了更適合開發微信小程序,WXSS 對 CSS 進行了擴充以及修改。
與 CSS 相比,WXSS 擴展的特性有:
- 尺寸單位
- 樣式導入
尺寸單位
- rpx(responsive pixel): 可以根據屏幕寬度進行自適應。規定屏幕寬為750rpx。如在 iPhone6 上,屏幕寬度為375px,共有750個物理像素,則750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
建議: 開發微信小程序時設計師可以用 iPhone6 作為視覺稿的標准。
注意: 在較小的屏幕上不可避免的會有一些毛刺,請在開發時盡量避免這種情況。
(1)樣式導入
使用@import
語句可以導入外聯樣式表,@import
后跟需要導入的外聯樣式表的相對路徑,用;
表示語句結束。
示例代碼:
/** common.wxss **/ .small-p { padding:5px; }
/** app.wxss **/ @import "common.wxss"; .middle-p { padding:15px; }
(2)內聯樣式
框架組件上支持使用 style、class 屬性來控制組件的樣式。
- style:靜態的樣式統一寫到 class 中。style 接收動態的樣式,在運行時會進行解析,請盡量避免將靜態的樣式寫進 style 中,以免影響渲染速度。
<view style="color:{{color}};" />
- class:用於指定樣式規則,其屬性值是樣式規則中類選擇器名(樣式類名)的集合,樣式類名不需要帶上
.
,樣式類名之間用空格分隔。
<view class="normal_view" />
(3)選擇器
目前支持的選擇器有:
(4)全局樣式與局部樣式
定義在 app.wxss 中的樣式為全局樣式,作用於每一個頁面。在 page 的 wxss 文件中定義的樣式為局部樣式,只作用在對應的頁面,並會覆蓋 app.wxss 中相同的選擇器。