一个控件引用多个css样式,样式中间用空格分开
//wxml
<view class="page-section page-section-spacing">
//wxss
@import "./weui.wxss";
.page-section{
width: 100%;
margin-bottom: 60rpx;
}
.page-section-spacing{
box-sizing: border-box;
padding: 0 80rpx;
}
view组件是最常用的视图容器。它是一个块级容器组件,主要用于布局展示,是布局中最基本的UI组件。所有复杂的布局都可以通过嵌套view来实现.
rpx(responsive pixel): 可以根据屏幕宽度进行自适应。
使用
@import
语句可以导入外联样式表,
@import
后跟需要导入的外联样式表的相对路径,用
;
表示语句结束。
内联样式
框架组件上支持使用 style、class 属性来控制组件的样式。
- style:静态的样式统一写到 class 中。style 接收动态的样式,在运行时会进行解析,请尽量避免将静态的样式写进 style 中,以免影响渲染速度。
<view style="color:{{color}};" />
- class:用于指定样式规则,其属性值是样式规则中类选择器名(样式类名)的集合,样式类名不需要带上
.
,样式类名之间用空格分隔。
<view class="normal_view" />
//js
data: {
background: ['demo-text-1', 'demo-text-2', 'demo-text-3'], //background 数组存放着3个样式名
indicatorDots: true,
vertical: false,
autoplay: false,
circular: false,
interval: 2000,
duration: 500,
previousMargin: 0,
nextMargin: 0
}
.demo-text-1:before{
content: 'A';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.demo-text-2:before{
content: 'B';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.demo-text-3:before{
content: 'C';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.swiper-item{
display: block;
height: 150px;
}
******************************
******************************
<swiper
indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" circular="{{circular}}" vertical="{{vertical}}"
interval="{{interval}}" duration="{{duration}}" previous-margin="{{previousMargin}}px" next-margin="{{nextMargin}}px">
<block wx:for="{{
background}}" wx:key="
*this">
<swiper-item>
<view class="swiper-item {{item}}"></view> 注:view 引用了两个样式,一个是固定的swiper-item,另一个来自于数组background的样式名
</swiper-item>
</block>
</swiper>
通过 {{ }} 的语法把一个变量绑定到界面上,我们称为数据绑定。仅仅通过数据绑定还不够完整的描述状态和界面的关系,还需要
if
/
else
,
for
等控制能力,在小程序里边,这些控制能力都用
wx:
开头的属性来表达。
在组件上使用
wx:for
控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。
默认数组的当前项的下标变量名默认为 index
,数组当前项的变量名默认为 item
使用 wx:for-item
可以指定数组当前元素的变量名,
使用 wx:for-index
可以指定数组当前下标的变量名:
<view wx:for="{{array}}">
{{
index}}: {{
item.age}}
</view>
array: [{age: 10},{age:30},{age:21}]
block wx:for
类似 block wx:if
,也可以将 wx:for
用在<block/>
标签上,以渲染一个包含多节点的结构块。
<block wx:for="{{[1, 2, 3]}}"> <view> {{index}}: </view> <view> {{item}} </view> </block>
wx:key
如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态(如 input 中的输入内容,switch 的选中状态),需要使用 wx:key
来指定列表中项目的唯一的标识符。
wx:key
的值以两种形式提供
- 字符串,代表在 for 循环的 array 中 item 的某个 property,该 property 的值需要是列表中唯一的字符串或数字,且不能动态改变。
- 保留关键字
*this
代表在 for 循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字。
当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。
如不提供 wx:key
,会报一个 warning
, 如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。