背景

前两篇文章我们学习了WXML的相关内容,了解了WXML的数据绑定、条件渲染、列表渲染、模版和事件,这些已经基本涵盖理WXML所能提供的全部能力。然而WXML与我们直接交互的微信小程序页面还有一定的距离,正如之前所提到的,其主要用于定义页面的结构,就如同还未装修的毛坯房,还需要WXSS去进一步美化,确定颜色和线条等.

WXSS

WXSS (WeiXin Style Sheets)是一套样式语言,用于描述WXML的组件样式,WXSS 用来决定 WXML 的组件应该怎么显示。为了适应广大的前端开发者,WXSS 具有 CSS 大部分特性。同时为了更适合开发微信小程序,WXSS 对 CSS 进行了扩充以及修改。与 CSS 相比,WXSS 扩展的特性有:

  • 尺寸单位
  • 样式导入

尺寸单位

CSS中原有的尺寸单位不能在不同尺寸的屏幕中完美实现元素的按比例缩放,所以WXSS在此基础上扩展了尺寸的单位rpx(responsive pixel),rpx是相对单位,最终会被换算为px,使用rpx布局页面能让页面在不同尺寸的屏幕中按比例缩放。

rpx可以根据屏幕宽度进行自适应。规定屏幕宽为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
iPhone6 Plus 1rpx = 0.552px 1px = 1.81rpx

选择器

CSS选择器用于选择需要添加样式的元素,WXSS实现了CSS部分的选择器,使用的规则与CSS相同,具体如下表所示:

选择器 样例 样例描述
.class .intro 选择所有拥有 class=“intro” 的组件
#id #firstname 选择拥有 id=“firstname” 的组件
element view 选择所有 view 组件
element, element view, checkbox 选择所有文档的 view 组件和所有的 checkbox 组件
::after view::after 在 view 组件后边插入内容
::before view::before 在 view 组件前边插入内容

WXSS和CSS代码结构一样,一段样式前是选择器,后面是大括号括起来的样式组合,每个样式以分号结束,如下所示

选择器 {样式1; 样式2}

下面举例来说明

/* pages/test/test.wxss *//* 选择所有class包含myClass的组件,并设置边框 */
.myClass {border: solid 1px #f00;margin-bottom: 30rpx;
}/* 选择所有text组件并且class含有myClass的组件并设置边框*/
text.myClass {border: solid 1px #0f0;
}/* 选择所有view组件中子节点且class为myClass并设置边框 */
view .myClass {border: solid 1px #00f;margin-bottom: 30rpx;
}/* 选择id为myId的组件并设置边框 */
#myId {border: solid 1px #0ff;margin-bottom: 30rpx;
}
<!--pages/test/test.wxml--><view class="myClass">class为myClass的组件
<view class="myClass"> view的子view且class为myClass</view>
</view>
<text class="myClass">text组件并且class含有myClass</text>
<view id="myId">view的id为myId</view>

其结果如下

内联样式

框架组件上支持使用 style、class 属性来控制组件的样式。

  • style:静态的样式统一写到 class 中。style 接收动态的样式,在运行时会进行解析,请尽量避免将静态的样式写进 style 中,以免影响渲染速度。
<view style="color:{{color}};" />
  • class:用于指定样式规则,其属性值是样式规则中类选择器名(样式类名)的集合,样式类名不需要带上.,样式类名之间用空格分隔。
<view class="myClass">class为myClass的组件

全局样式与局部样式

定义在 app.wxss 中的样式为全局样式,作用于每一个页面。在 page 的 wxss 文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖 app.wxss 中相同的选择器。

最后

有兴趣可以关注公众号QStack,会定期分享一些文章和学习资源。

微信小程序开发入门教程(七)相关推荐

  1. 微信小程序开发入门教程-小程序账号注册及开通

    17年小程序开始公测,经过5年的发展,无论从组件.开发工具.api.生态.社区,都已经发展的非常成熟了.如果17年年初你看小程序,觉得无需安装即用即走还是一个理念的话.站在今天看过去,往往是先提出一个 ...

  2. 如何开发一个个人微信小程序,微信小程序开发入门教程

    做任何程序开发要首先找到其官方文档,我们先来看看其有哪些官方文档. 微信小程序开发文档链接为:https://mp.weixin.qq.com/debug/wxadoc/dev/index.html, ...

  3. 微信小程序开发入门教程(一)

    背景 作为一个程序猿需要不断的充实自己,不仅要追求知识的深度,也要追求知识的广度,我也一直在这条路上践行,主要学习会让我变得专注,我非常喜欢这样的感觉,学习微信小程序开发也是兴趣使然,希望拿微信小程序 ...

  4. 微信小程序开发入门教程(十)

    背景 前几篇文章我们已经学习了WXML相关的数据绑定与几种渲染方式,还学习了与WXSS相关的样式绑定.浮动定位和Flex布局,其中无论是WXML的页面布局还是WXSS的样式都是基于元素而言的,而这些元 ...

  5. 微信小程序开发入门教程(三)

    背景 上一篇文章我们主要介绍了微信小程序的几个配置,其中app.json是对于微信小程序全局的配置,page.json是对于小程序页面的配置,project.config.json是对于小程序开发工具 ...

  6. 微信小程序开发入门教程-文本组件介绍

    学习小程序开发要从哪开始呢?我们是开始顺序学习官方文档么?如果一开始就从头开始读官方文档,恐怕用不了多久你就放弃了.计算机是一门实践科学,我们学习的目的是为了解决现实问题.要么你想在互联网创业,开发一 ...

  7. 微信小程序开发入门教程(八)

    背景 上一篇文章我们已经讲述了WXSS的一部分内容,其中包括尺寸.选择器.内联样式以及全局样式和局部样式,本篇文章将会讲述WXSS布局相关内容,WXSS实现了CSS布局相关的绝大部分规范. 盒模型 盒 ...

  8. 微信小程序开发入门教程(十二)

    背景 上一篇文章我们讲述了微信小程序的三个基础组件icon.text和progress.这些基础组件主要用途是进行信息展示,微信小程序除了信息展示还需要与用户交互,而表单是应用中获取用户输入的重要手段 ...

  9. 微信小程序开发入门教程(十一)

    背景 终于入职了,线上入职远程办公,感概还是很多的,有机会专门写一下,刚入职熟悉项目,适应新的节奏还是需要时间的,所以时间可能不肯像以前那么充裕了,我尽力保持日更吧,其实之前的两篇都是之前的存稿,确实 ...

最新文章

  1. 在linux上配置JDK环境变量
  2. Myeclipse+mysql出现中文乱码情况
  3. [BZOJ2429][HAOI2006]聪明的猴子(最小生成树)
  4. Sharepoin学习笔记—架构系列--01 Sharepoint的网页(Page),网页解析(Parsing)与解析安全处理(Security)
  5. 左手用R右手Python系列之——表格数据抓取之道
  6. idea mac xml注释快捷键
  7. 已知坐标增量求坐标方位角_数控机床绝对坐标与增量坐标编程运用,一学便会...
  8. 兼容 IE、 FireFox 的 javascript 日历控件 原创作者:寒羽枫(cityhunter172)
  9. 关于MSP430单片机程序烧写的介绍
  10. html图片按钮按钮点击效果
  11. python爬取喜马拉雅FM音频
  12. 单片机原理及接口技术(C51微课第3版)张毅刚课后习题答案
  13. 如何同时训练左手灵活性和音阶思维
  14. java的mysql语句规范_mysql 规范
  15. 电脑右键没有“发送到”选项
  16. SQL根据出生日期计算年龄的两种算法
  17. 离散小波matlab程序,三维离散小波变换matlab实现.pdf
  18. ESP8266 NodeMCU引脚说明
  19. Linux下安装curl
  20. LINUX选定区域截图

热门文章

  1. 昆明理工大学计算机组成原理考试,昆工计科组成原理实验の计算机组成原理各部件实验.doc...
  2. 安卓开发入门--第一个手机APP
  3. mysql迁移后数据对比_Oracle/云MySQL/MsSQL“大迁移”真相及最优方案
  4. C++ 线程里面延时1秒的技巧
  5. 百趣代谢组学资讯:寻求多年,黄瓜品质好的秘密居然在这里
  6. ultraiso制作u盘启动盘教程图文详解
  7. 苹果手机屏幕尺寸_苹果,小米在折叠屏手机上曝光新专利,TCL展示卷轴式屏幕手机...
  8. 局域网流量监控软件以及其实现方式
  9. 流量监控软件轻松处理异常流量
  10. Python语言程序设计(北京理工大学MOOC)1-5周