微信小程序开发详解 3 :开发框架视图层
3.1 样式语言WXSS
WXSS实现了CSS的大部分特性,不同之处:
- app.wxss和每个page的WXSS的覆盖关系是:如果有同名rule,page就会覆盖app的样式。而在CSS中,同名rule的样式只是合并。选择器支持after、before伪类,但是不支持first-child、last-child、nth-child这类伪类。
- 定义在app.wxss中的样式为全局样式,作用于每个页面。在page的WXSS文件中定义的样式为局部样式,只作用于对应的页面。
- WXSS不支持大括号嵌套({{}})。所以key-frames、CSS animation不可用、不过transition是可用的。
- WXSS不能使用本地资源。例如,设置元素的background-image属性时,可以使用网络图片、base64或<image/>标签。
- WXSS的rule不支持级联,如.class1 p。
- 不支持引入字体。
尺寸单位:引入rpx(responsive pixel)
选择器:是一种模式,用于选择需要添加样式的元素。
3.2 标签语言WXML
框架设计的一套标签语言,结合基础组件、事件系统可以构建出页面结构。
WXML数据绑定和渲染:动态数据均来自对应Page的data。用{{var}}
WXML模板与引用:include引入整个文件,相当于复制。import仅仅是使用template。
WXML事件绑定:
事件绑定的写法同组件的属性,以key、value的形式。
key以bind或catch开头,然后跟上事件的类型,如bindtap、catchtouchstart。所有事件都可以加上bind或catch。
value是一个字符串,需要在对应Page中定义同名的函数。不然,当触发事件时会报错。
bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡。