WXSS
(WeiXin Style Sheets
)是⼀套样式语⾔,⽤于描述WXML
的组件样式。与CSS
相⽐,WXSS
扩展的特性有:
- 响应式⻓度单位
rpx
。- 样式导⼊。
1. 尺寸单位
-
rpx
(responsive pixel
):可以根据屏幕宽度进⾏⾃适应。规定屏幕宽为 750rpx。如在iPhone6 上,屏幕宽度为 375px ,共有750个物理像素,则 750rpx = 375px = 750物理像素 , 1rpx = 0.5px = 1物理像素。
设备 | rpx换算为px(屏幕宽度/750) | px换算为rpx(750/屏幕宽度) |
---|---|---|
iPhone5 | 1rpx = 0.42px | 1px = 2.34rpx |
iPhone6 | 1rpx = 0.5px | 1px = 2rpx |
iPhone6Plus | 1rpx = 0.552px | 1px = 1.81rpx |
-
建议: 开发微信⼩程序时设计师可以⽤
iPhone6
作为视觉稿的标准。
1.1 使⽤步骤:
- 确定设计稿宽度
pageWidth
。 - 计算⽐例
750rpx = pageWidth px,
因此1px=750rpx/pageWidth
。 - 在
less
⽂件中,只要把设计稿中的px => 750/pageWidth rpx
即可。
1.2 像素计算案例
1.2.1 wxml
<view>
rpx
</view>
1.2.2 wxss
/*
1. 小程序中是不需要主动来进行样式的引入的
2. 需要将页面中某些元素的单位有 px 修改为 rpx
a. 设计稿 750px
b. 1px = 1rpx
3.如果将屏幕的宽度修改为 375px
a. 375px = 750rpx
b. 1rpx = 0.5px
4. 存在一个设计稿宽度是 414 或者 位置 page
a. 设计稿 page中存在一个元素 宽度为 100 px
b. 拿以上的需求去实现不同宽度的页面进行适配
page = 750rpx
1px = 750rpx / page
100px = 750rpx * 100 / page
5. 利用一个属性 calc 属性css 和wxss都是支持的
a. 750 和 rpx 之间不能出现空格。
b. 运算符的两遍不能留空格
*/
view {
/* width: 200rpx; */
width: calc(750rpx*100/(375));
height: 200rpx;
font-size: 40rpx;
background-color: aqua;
}
1.3 样式导入
- wxss中直接就⽀持,样式导⼊功能。
- 也可以和
less
中的导⼊混⽤。 - 使⽤
@import
语句可以导⼊外联样式表,只⽀持相对路径。 - 样式文件是以
.wxss
为后缀,不能以.css
为后缀。
1.3.1 wxml
<!--
引入全局样式文件
-->
<view>
@import引入全局样式文件
</view>
1.3.2 外部 wxss
/* 将其作为一个全局样式文件 */
view {
font-size: 100rpx;
color: aqua;
}
1.3.3 导入 wxss
/*
1. 使用@import 引入全局样式文件。
2. 只能使用相对路径
3. 这里的样式文件的后缀必须是 .wxss 不能是 css
*/
@import "../style/style.wxss";
view {
background-color: pink;
}
2. 选择器
- 特别需要注意的是 ⼩程序 不⽀持通配符 * 因此以下代码⽆效!
*{
margin:0;
padding:0;
box-sizing:border-box;
}
- ⽬前⽀持的选择器有:
选择器 | 样例 | 样例描述 |
---|---|---|
.class | .intro | 选择所有拥有class= intro 的组件 |
#id | #firstname | 选择拥有id= firstname的组件 |
element | view | 选择所有view组件 |
element,element | view,checkbox | 选择所有⽂档的view组件和所有的checkbox组件 |
nth-child(n) | view:nth-child(n) | 选择某个索引的标签 |
::after | view::after | 在view组件后边插⼊内容 |
::before | view::before | 在view组件前边插⼊内容 |
3.⼩程序中使⽤less
-
原⽣⼩程序不⽀持
less
,其他基于⼩程序的框架⼤体都⽀持,如wepy
,mpvue
,taro
等。但是仅仅因为⼀个less
功能,⽽去引⼊⼀个框架,肯定是不可取的。因此可以⽤以下⽅式来实现。 -
使用编辑器
vscode
安装插件easy less
。
- 在
vscode
中设置插件:
- 在settings.json文件中配置如下:
"less.compile": {
"outExt": ".wxss"
}
设置位置
3.1 编写less
文件测试
less
@color:red;
view {
color: @color;
}
3.2 修改原来的wxss
文件为 less
文件并引入全局的less
文件
- 修改原来的
wxss
文件为less
文件并引入全局的less
文件。引入方式还是和引入wxss
一样使用@import "文件相对路径"
。
@import "../style/reset.less";
网友评论