系列文章目录
微信小程序开发【一】-- 初识小程序 传送门
微信小程序开发【二】-- 小程序入门 传送门
微信小程序开发【三】-- 项目结构概述 传送门
微信小程序开发【四】-- 配置详解 传送门
微信小程序开发【五】-- wxml详解 传送门
微信小程序开发【六】-- wxss详解 传送门
微信小程序开发【七】-- js详解 传送门
微信小程序开发【八】-- 页面栈和模块化 传送门
微信小程序开发【九】-- 初识小程序云开发 传送门
微信小程序开发【十】-- 云函数/云数据库/云存储 传送门
文章目录
- 系列文章目录
- 一、概述
- 二、尺寸单位
- 三、样式导入
- 四、内联样式
- 五、全局样式和局部样式
- 六、支持的选择器
- 七、框架组件
- 总结
一、概述
WXSS是一套样式语言,用于描述WXML的组件样式。
官方文档表示,WXSS的选择器目前支持(“.class”、“#id”、“elemnt”、“element,element”、“::after”、“::before”),而且本地资源无法通过WXSS获取,所以WXSS中的样式都是用的网络图片,或者base64。
好在微信团队提供的WXSS具有CSS大部分特性。同时为了更适合开发微信小程序,微信团队对CSS进行了扩充以及修改。
与CSS相比,WXSS扩展的特性有:
- 尺寸单位
- 样式导入
二、尺寸单位
WXSS新增了针对移动端屏幕的两种尺寸单位:rpx与rem。
- rpx:可以根据屏幕度进行自适应。规定屏幕宽为750rpx。iphone6屏幕宽度为375px,共有750个物理像素,则750rpx=375px=750物理像素,1rpx=0.5px=1物理像素。
- rem:规定屏幕宽度为20rem;1rem=(750/20)rpx。
因此建议开发微信小程序时用iphone6s作为视觉稿的标准。
设备 | rpx换算px (屏幕宽度/750) | px换算rpx (750/屏幕宽度) |
---|---|---|
iPhone5 | 1rpx = 0.42px | 1px = 2.34rpx |
iPhone6/6s | 1rpx = 0.5px | 1px = 2rpx |
iPhone6/6s Plus | 1rpx = 0.552px | 1px = 1.81rpx |
三、样式导入
- 可以使用@import语句来导入外链样式表。@import后跟需要导入的外链样式表的路径,并用;表示语句结束。
/**common.wxss**/
.small-p{padding:5px;
}/**app.wxss**/
@import "common.wxss";
.middle-p{padding:15px;
}
四、内联样式
内联样式指的是框架组件上支持使用style、class属性来控制组件的样式:
- class:用于指定样式规则,其属性值是样式规则中类选择器名(样式类名)的集合。
<view class="normal_view" />
- style:静态的样式统一写到class中。style接收动态的样式,在运行时会进行解析,尽量避免将静态的样式写进style中,以免影响渲染速度。
<view style="color:{{color}};"/>
五、全局样式和局部样式
定义在app.wxss中的样式为全局样式,作用于每一个页面。在page的.wxss文件中定义的样式为局部样式,只作用于对应的页面,并会覆盖app.wxss中相同的选择器。
六、支持的选择器
选择器 | 样例 | 样例描述 |
---|---|---|
.class | .intro | 选择所有拥有 class=”intro” 的组件 |
#id | #firstname | 选择拥有 id=”firstname” 的组件 |
element | view | 选择所有 view 组件 |
element, element | view,.header | checkbox 选择所有文档的 view 组件和所有的 checkbox 组件 |
::after | view::after | 在 view 组件后边插入内容 |
::before | view::before | 在 view 组件前边插入内容 |
七、框架组件
组件是视图层的基本组成单元,除自带某些功能外,也具有微信风格的样式。所有的组件与属性都需要使用小写字母。
- 框架组件共有属性及描述
属性名 | 类型 | 描述 | 注解 |
---|---|---|---|
id | String | 组件唯一标识 | 保持整个页面唯一 |
class | String | 组件的样式类 | 在对应的WXSS中定义的样式类 |
style | String | 组件的内联样式 | 可以动态设置的内联样式 |
hidden | Boolean | 组件是否显示 | 所有组件默认显示 |
data-* | Any | 自定义属性 | 组件上触发事件时,会发送给事件处理函数 |
bind*/catch* | EventHandler | 组件的事件 |
表中的 * 为通配符,分别对应属性名(data-* ,* 代表自定义的属性)与事件名(bind* 或catch* ,* 代表6种冒泡事件之一)。
- 同时每一个组件也可以有自定义的属性(称为“特殊独有属性”),用于对该组件的功能或样式进行修饰。但属性只支持下面七种数据类型。
类型 | 描述 | 注解 |
---|---|---|
Boolean | 布尔值 | 组件写上该属性,不管该属性等于什么,其值都为true,只有组件上没有写该属性时,属性值才为false。如果属性值为变量,变量的值会被转换为Boolean类型 |
Number | 数字 | 1,2.5 |
String | 字符串 | “string” |
Array | 数组 | [1,“string”] |
Object | 对象 | {key:value} |
EventHandler | 事件处理函数名 | "handlerName"是Page中定义的事件处理函数名 |
Any | 任意属性 |
总结
WXSS(WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式。WXSS 具有 CSS 大部分特性。 同时为了更适合开发微信小程序,对 CSS 进行了扩充以及修改了:尺寸单位、样式导入。
-
尺寸单位:rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。以iPhone6为例:1rpx = 0.5px,1px = 2rpx。
-
样式导入:使用@import语句导入外部样式,@import后跟外部样式文件的相对路径。。