在Vant 中,Layout组件用于元素的响应式布局,分别由van-row和van-col两个组件来实现,前者表示行,后者被包裹在van-row组件中,表示列,共有24列栅格组成,在van-col组件中,span属性表示所占列的比例,offset属性表示列的偏移量。
此外,van-row和van-col其他属性分别如下表11-4、11-5所示。
接下来通过一个完整的案例来演示使用van-row和van-col组件布局效果。
实例11-3 Layout组件
1. 功能描述
创建一个页面,使用Vant中的van-row和van-col组件,分别显示三列布局、带偏移量的布局和居中显示的布局效果。
2. 实现代码
在项目的components 文件夹中,添加一个名为“Layout”的.vue文件,该文件的保存路径是“components/ch11/base/”,在文件中加入如清单11-3所示代码。
代码清单11-3 Layout.vue代码
<template>
<h3>Layout 组件</h3>
<div class="row">
<p>基础用法</p>
<van-row>
<van-col class="col" span="8">span: 8</van-col>
<van-col class="col-m" span="8">span: 8</van-col>
<van-col class="col" span="8">span: 8</van-col>
</van-row>
</div>
<div class="row">
<p>列间偏移量</p>
<van-row>
<van-col class="col" span="8">span: 8</van-col>
<van-col span="12" offset="4" class="col-m">
offset: 4, span: 12
</van-col>
</van-row>
</div>
<div class="row">
<p>对齐方式</p>
<van-row justify="center">
<van-col class="col" span="6">span: 6</van-col>
<van-col class="col-m" span="6">span: 6</van-col>
<van-col class="col" span="6">span: 6</van-col>
</van-row>
</div>
</template>
<script>
export default {
}
</script>
<style scoped>
.row {
margin: 10px 0;
padding: 10px 0;
border-bottom: solid 1px #eee;
}
.col {
background-color: #eee;
padding: 5px 0;
text-align: center;
}
.col-m {
background-color: #ccc;
padding: 5px 0;
text-align: center;
}
</style>
3. 页面效果
保存代码后,页面在Chrome浏览器下执行的页面效果如图11-5所示。
4. 源码分析
vant-row和van-col结合使用可以实现页面元素的响应式布局,后者必须包裹在前者中,在van-col组件中,span的值表示24格中占几格,如值为8表示这列占据8格,剩余16格式,可以再次根据需求分配,总量必须在24格内。