视图层分析
1、[page-name].wxml页面结构
WXML(WeiXin Markup Language)是MINA框架设计的一套标签语言,基于XML。
结合一些基础组件、事件系统、模板数据绑定,可以构建出页面的结构。
简单来说:wxml ≈ xml + 事件系统 + 模板引擎
例如:
// js
Page({ data: { todos: [
{ text: 'JavaScript', completed: false },
{ text: 'JavaScript+', completed: false },
{ text: 'JavaScript++', completed: false }
]
},
completed (e) { ... }
})
<!-- wxml -->
<view>
<view wx:for="{{ todos }}">
<block wx:if="{{ !item.completed }}">
<text>{{ item.text }}</text>
<button bindtap="completed" data-item-index="{{ index }}"> √ </button>
</block>
</view>
</view>
2、[page-name].wxss页面样式
WXSS(WeiXin Style Sheets)是MINA框架设计的一套标签语言,基于XML。
WXSS用来决定了在WXML中定义的组件应该怎么显示。
为了适应广大的前端开发者,我们的WXSS具有CSS大部分特性。 同时为了更适合开发微信小程序,我们对CSS进行了扩充以及修改。
与CSS相比我们扩展的特性有:
尺寸单位
rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
rem(root em): 规定屏幕宽度为20rem;1rem = (750/20)rpx 。
设备 |
rpx换算px (屏幕宽度/750) |
px换算rpx (750/屏幕宽度) |
rem换算rpx (750/20) |
iPhone5 |
1rpx = 0.42px |
1px = 2.34rpx |
1rem = 37.5rpx |
iPhone6 |
1rpx = 0.5px |
1px = 2rpx |
1rem = 37.5rpx |
iPhone6s |
1rpx = 0.552px |
1px = 1.81rpx |
1rem = 37.5rpx |
建议: 开发微信小程序时设计师可以用 iPhone6 作为视觉稿的标准。
注意: 在较小的屏幕上不可避免的会有一些毛刺,请在开发时尽量避免这种情况。
样式导入
使用@import语句可以导入外联样式表,@import后跟需要导入的外联样式表的相对路径,用;表示语句结束。
@import "common.wxss";text { background-color: #ff0;
}
选择器
目前只支持如下选择器
选择器 |
样例 |
样例描述 |
.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 组件前边插入内容 |
全局样式与局部样式
定义在app.wxss中的样式为全局样式,作用于每一个页面。在[page-name].wxss文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖app.wxss中相同的选择器。
如果你有更好的心得和建议,欢迎拍砖一起探讨。
欢迎加入【编程技术微分享】,加入(596888158)请留言,或联系QQ:Mr.Chen(1182929304)。
请发表评论