之前,我已经介绍过在小程序开发中使用WXML来做界面布局,但是WXML只是一个界面的骨架。要让我们的小程序变得精致漂亮高大上起来,就需要一种为其添加样式的机制。小程序的开发框架采用了与Web开发中所使用的CSS(层叠样式表)几乎相同的一种机制,称作WXSS。
WXSS用于描述WXML的组件样式,用于决定WXML的组件应该如何显示。为了适应广大的前端开发者,它被设计为支持CSS中大部分的特性(但是注意是大部分,还是有一些特性是不支持的),并且有一些自己的扩展和修改。比如引入了一种新的尺寸单位rpx,还有@import这种外联样式的导入机制(话说这个功能不是CSS里也有的么...)
关于CSS,我就不在这里介绍它的用法了,这个内容实在有点多,还没学习过CSS的朋友可以自己找一下资料学习,我在这里主要想讲解一下WXSS和CSS之间的不同之处。
样式的设置
在WXML文件中,我们可以通过style和class属性为组件设置样式。不过由于WXML的数据绑定功能的存在,我们就可以动态的设置style和class的属性值了。比如:
<view style="color:{{color}};padding:{{padding}};">Hello</view>
<view class="message-{{type}}">{{message}}</view>
不过,我们要尽量避免使用style来设置组件的样式,最好将样式定义成样式规则放到样式文件中(.wxss),然后通过class属性来设置。因为组件通过style接收动态样式,在运行时会进行解析,影响渲染性能。
有限的选择器
和CSS不一样,小程序的WXSS支持的选择器的类型有限,官方文档中明确列出说支持的,目前只有以下几种选择器:
- .class:类选择器,例如.error-msg,它会选择所有class="error-msg"的组件
- #id:ID选择器,例如#my-container,它会选择id="my-container"的组件
- element:元素选择器,例如view,它会选择所有view组件
- element, element:多选择器,例如view, button,它会选择所有view和button组件
- ::after:例如view::after,它会在view组件后面插入内容
- ::before:例如view::after,它会在view组件前面插入内容
其实自己试了一些在CSS中可用,小程序官方没有声明在WXSS里支持的选择器,也是可以生效的。但是有些用了就会把微信web开发者工具给整崩溃掉,所以,还是不要在实际开发中使用这类没说支持的选择器了,虽然在有的场景下麻烦了点,但是以上支持了的选择器还是基本够用了。
全局样式与局部样式
WXSS中有全局样式与局部样式之分。
定义在app.wxss文件中的样式为全局样式,将会对每一个页面起作用。
而定义为page同名的wxss文件,则称为局部样式,只会针对对应的页面起作用,而且样式优先级比全局样式要高,可以覆盖全局样式。
新的尺寸单位
最后来说一下WXSS中新增和扩展的尺寸单位,对于做屏幕的自适应是非常有帮助的。
- rpx (responsive pixel,响应式px),简单来说,就是不管什么尺寸的设备,总是认为屏幕宽度是750rpx
- rem (root em,根em),也很简单,就是不管什么尺寸的设备,总是认为屏幕的宽度是20rem。
所以rpx和rem之间的换算,就是:
1rem = (750/20)rpx = 37.5rpx
设计师的设计稿一般都是按照px来做单位的,那么在开发阶段,开发人员就需要在px和rpx之间进行换算,具体可以如下来计算:
rpx = (屏幕实际宽度/750)px
px = (750/屏幕实际宽度)rpx
因此,如果设计师的设计是以iphone6屏幕尺寸为参照(iphone6的屏幕宽度为375px),则:
1rpx = (375/750)px = 0.5px
1px = (750/375)rpx = 2rpx
是不是很容易理解?
好了,关于微信小程序样式WXSS的关键点内容,就讲解到这里,不对的地方欢迎指正。谢谢啦。
相关推荐
小程序基于JavaScript、WXML(微信小程序标记语言)和WXSS(微信小程序样式语言)进行开发,可以调用微信提供的API实现丰富的功能。 二、点餐系统需求分析 点餐系统需具备以下功能: 1. 菜单展示:展示餐厅菜品,...
3. **微信小程序结构**:每个微信小程序由多个页面组成,每个页面包括对应的JS、WXML(微信小程序的XML标记语言)、WXSS(微信小程序的样式语言)和JSON配置文件。在这个示例中,开发者可以通过查看这些文件来学习...
通过对猫眼微信小程序源码的深入学习,开发者可以了解到微信小程序的完整开发流程,包括如何定义页面结构、编写样式、处理业务逻辑以及与微信API的交互。同时,也能从中汲取优化用户体验、提高程序性能的技巧,对于...
1. **微信小程序框架**:微信小程序基于一套自定义的标记语言WXML(WeiXin Markup Language)和WXSS(WeiXin Style Sheet),这两者分别负责结构和样式。同时,JavaScript用于处理业务逻辑和数据绑定。它们之间通过`...
1. **框架结构**:微信小程序基于一套自定义的XML-like语法,称为WXML(微信小程序标记语言)和WXSS(微信小程序样式语言),它们分别负责结构和样式。同时,JavaScript用于处理逻辑和数据绑定。 2. **页面生命周期...
1. **微信小程序框架**:了解微信小程序的基本架构,包括WXML(WeiXin Markup Language)负责结构,WXSS(WeiXin Style Sheet)处理样式,以及JavaScript处理逻辑。WXML与HTML类似,但不完全相同,WXSS则类似于CSS,...
微信小程序是一种轻量级的应用开发平台,主要针对移动端,由腾讯公司推出,它允许开发者使用JavaScript、WXML(微信小程序标记语言)和WXSS(微信小程序样式语言)来构建交互丰富的应用。本项目"微信小程序拼图验证...
在这个实例中,用户可以编辑和保存文本,这需要对用户输入的数据进行管理,通常通过微信小程序的全局数据管理机制实现。 4. **计时功能**: 计时功能可能涉及到计时器(timer)的概念。开发者可以使用wx....
9. **样式隔离**:学习如何避免样式冲突,合理使用类名和选择器,以及微信小程序提供的样式隔离机制。 10. **调试与测试**:掌握微信开发者工具的使用,进行代码编辑、预览、调试和性能优化。 通过实践“美食列表...
2. **数据绑定**: WXML 和 WXSS 之间的数据交互通过 JavaScript 进行,利用微信小程序的 Vue.js 风格的数据绑定机制,如 `{{ }}` 双大括号表达式,实现视图层与逻辑层的数据同步。 3. **Page 结构**: 小程序的每个...
1. **框架结构**:微信小程序使用了基于WXML(微信小程序标记语言)和WXSS(微信小程序样式语言)的开发框架,结合JavaScript处理业务逻辑。源码中可能包含app.js、app.json、app.wxss等全局配置文件,以及各个页面...
首先,我们要知道,微信小程序的开发主要基于JavaScript、WXML(微信小程序标记语言)和WXSS(微信小程序样式语言)。在这个实例中,我们看到它强调是"纯前端项目",这意味着所有的业务逻辑和视图层都在客户端完成,...
11. **页面路由管理**:微信小程序有自己的页面路由机制,用于控制页面之间的跳转和参数传递。 12. **本地存储**:可以使用wx.setStorageSync和wx.getStorageSync进行数据的本地持久化存储。 13. **动画效果**:...
13. **样式隔离**:为了防止样式冲突,微信小程序引入了样式隔离机制,每个组件都有自己的样式作用域,可以避免全局样式污染。 14. **页面路由管理**:小程序的页面跳转可以通过`wx.navigateTo`、`wx.redirectTo`等...
开发者可以使用JavaScript、WXML(微信小程序的结构语言)和WXSS(微信小程序的样式语言)进行开发。然而,微信小程序默认不支持WebSocket等长连接技术,这使得与SignalR这类依赖实时双向通信的技术集成变得复杂。 ...
微信小程序源码是一种基于微信平台开发的应用程序框架,它允许开发者使用JavaScript、WXML(微信小程序标记语言)和WXSS(微信小程序样式语言)来构建功能丰富的轻量级应用。这款商城微信小程序源码,结合PHP后台,...
开发微信小程序需要掌握微信官方提供的开发工具,包括小程序IDE、WXML(微信小程序标记语言)和WXSS(微信小程序样式语言),以及JavaScript语言来处理业务逻辑。此外,开发者还需要了解JSON配置文件,用于定义页面...
初学者可以通过此项目学习如何使用微信小程序的`wxml`和`wxss`来构建页面结构和样式,以及如何使用`js`处理业务逻辑和数据。登录功能是电商应用的基础,这里的账号和密码为"abc"和"123",可以用来模拟用户登录过程,...
2. **语义分析**:分析百度小程序的API调用、事件处理和数据绑定,映射到微信小程序的相应机制。 3. **代码转换**:根据分析结果,Python脚本进行代码替换或结构调整,将百度小程序的语法转换为微信小程序的语法。 4...