之前,我已经介绍过在小程序开发中使用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的关键点内容,就讲解到这里,不对的地方欢迎指正。谢谢啦。
相关推荐
微信小程序是不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开的应用,在微信小程序的使用过程中,用户只增不减,很多的公司都开始研发属于自己的小程序,那么小程序该...
微信小程序Demo-TAB切换是一个功能丰富且易于定制的示例项目,它展示了如何在微信小程序中实现TAB页面的切换效果。通过这个项目,开发者可以学习到如何使用微信小程序的API和组件来创建流畅的用户界面,以及如何管理...
微信小程序作为一种全新的移动应用形态,越来越受到企业和开发者的青睐。开发一个微信小程序商城需要掌握小程序的开发技术以及相关的业务知识。以下是一份关于微信小程序商城代码解说的补充说明: 1. 小程序架构和...
OFO作为共享单车的先行者,推出微信小程序版本便于用户更方便快捷地使用单车服务。以下是关于OFO微信小程序代码实现demo的一些补充说明: 1. 小程序架构及技术栈 OFO小程序采用微信官方的小程序架构,主要涉及WXML/...
**微信小程序:汉服租赁平台设计与实现** 此资源包含一个基于微信小程序的汉服租赁平台项目的完整源码及详细设计文档。该项目旨在提供一个便捷、高效的汉服租赁服务,让传统文化爱好者能够轻松体验和分享汉服之美。...
项目标题:基于Java与微信小程序的协同过滤商品推荐系统源码 技术栈:主要采用Java语言,结合JavaScript和微信小程序技术。 文件构成:总计93个文件,包括以下类型: - JavaScript文件:18个 - 微信样式表(wxss)...
网盘文件永久链接 ...第25讲-小程序运行机制 第26讲-小程序加载机制 第27讲-生命周期 第28讲-页面路由 第29讲-小程序事件流 第30讲-view容器 第31讲-scroll-view滚动容器 第32讲-swiper滑块容器......
第9章 微信小程序 9.1 小程序简介 121 9.2 开发环境及框架 122 9.2.1 开发配置 125 9.2.2 HTTPS配置 126 9.3.1 iOS/Android开发者 129 9.3 如何着手开发小程序 129 9.4 页面生命周期 130 ...
小微金融企业的微信小程序是一个为企业提供金融服务的移动应用程序。它利用了微信平台的广泛用户基础和便捷性,为小微企业和个人用户提供了一系列金融相关的服务功能。以下是该小程序的技术概览和主要功能: 技术...
免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。
微信小程序因为其便捷的使用方式,以极快的速度传播开来吸引了大量的使用者。市场需求急剧增加的情况下,每家互联网企业都想一尝甜头,因此掌握小程序开发这一技术无疑是一名前端开发者不可或缺的技能。但小程序开发...
第9章 微信小程序 9.1 小程序简介 121 9.2 开发环境及框架 122 9.2.1 开发配置 125 9.2.2 HTTPS配置 126 9.3.1 iOS/Android开发者 129 9.3 如何着手开发小程序 129 9.4 页面生命周期 130 9.3.2 前端...
微信小程序因为其便捷的使用方式,以极快的速度传播开来吸引了大量的使用者。市场需求急剧增加的情况下,每家互联网企业都想一尝甜头,因此掌握小程序开发这一技术无疑是一名前端开发者不可或缺的技能。但小程序开发...
第9章 微信小程序 9.1 小程序简介 121 9.2 开发环境及框架 122 9.2.1 开发配置 125 9.2.2 HTTPS配置 126 9.3.1 iOS/Android开发者 129 9.3 如何着手开发小程序 129 9.4 页面生命周期 130 9.3.2 前端...
WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和...WeUI最初是为HTML5的页面设计的样式库,现在微信小程序使用的样式机制也是css风格的样式机制(不过稍稍有些不一样的地方),We
程序限制 脚本内不能使用window等对象 zepto/jquery 会使用到window对象和document对象,所以无法使用。 样式表不支持级联选择器 本地资源无法通过 css 获取 background-image:可以使用网络图片,或者 base64...
SAPI++ 是多应用、多租户、多终端的SaaS平台开发框架。...接入微信开放平台,SaaS应用(微信小程序)一键授权发布; 完善的微信公众号、小程序帐号授权体系,基于API已全部封装,不用二次开发,你只需关注应用
■扩展:微信小程序接口,增加安全验证(避免被其他人调用接口),扩展购物车,用户等模块 ■增加:库选字段--下拉选单被遮住Bug,并增加判断,避免JS重复加载 ■增加:库选字段增加筛选功能 ■增加:增加RSA加密方式,用于...
4、如果是在小程序或微信里打开,自动调用微信登录 电脑端: 5、新增一套适合斗鱼号、抖音号等交易的模板 6、订单体系改版,多订单可合并 7、改进实体商品物流快递的计价方式 8、更新退款机制,可实现订单里部分商品...
多端异构:在完美支持 H5 环境的同时,同时兼容 Node.js,支付宝小程序、微信小程序、React Native以及 Weex 端的渲染,一份代码,多设备多环境渲染。 2、图表丰富,组件完备 与传统的图表库不同,抛弃了特图特做的...