grid - 网格项目跨行或跨列

默认情况下网格项目跨度只有一个列和行,但可以跨越多个行和列。

 

1.可以通过设置grid-column-endgrid-column-start距离多个网络线号实现多个列跨越.

 

1 <view class="grid">
2   <view class='item1'>1</view>
3   <view class='item'>2</view>
4   <view class='item'>3</view>
5   <view class='item'>4</view>
6   <view class='item'>5</view>
7   <view class='item'>6</view>
8   <view class='item'>7</view>
9 </view>
View Code

 

 1 page {
 2   color: #fff;
 3   font-size: 16px;
 4 }
 5 
 6 .grid {
 7   /* padding: 1%; */
 8   display: grid;
 9   grid-gap: 1px;
10   line-height: 100px;
11   grid-template-columns: repeat(3, 1fr);
12 }
13 
14 .item1 {
15<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个简单的实现,以下是基本的代码结构: ```vue <template> <div :style="gridStyle"> <div v-for="item in items" :key="item.id" :style="itemStyle(item)"> {{ item.text }} </div> </div> </template> <script> export default { props: { rows: { type: Number, default: 2 }, cols: { type: Number, default: 2 }, gap: { type: Number, default: 10 }, items: { type: Array, default: () => [] } }, computed: { gridStyle() { return { display: 'grid', gridTemplateRows: `repeat(${this.rows}, 1fr)`, gridTemplateColumns: `repeat(${this.cols}, 1fr)`, gap: `${this.gap}px` } } }, methods: { itemStyle(item) { return { gridColumnStart: item.colStart || 1, gridColumnEnd: item.colEnd || 'span 1', gridRowStart: item.rowStart || 1, gridRowEnd: item.rowEnd || 'span 1', lineHeight: `${item.lineHeight || 20}px` } } } } </script> ``` 在上面的代码中,我们使用了Vue的计算属性来动态生成CSS网格样式,并在`v-for`中循环渲染`items`数组中的元素。我们还定义了一些props来接收组件的配置,并且为每个项设置了样式。 使用该组件时,您可以像这样传递数据: ```vue <template> <Grid :rows="3" :cols="3" :gap="20" :items="[ { id: 1, text: 'Item 1', colStart: 1, colEnd: 3, rowStart: 1, rowEnd: 2, lineHeight: 30 }, { id: 2, text: 'Item 2', colStart: 2, colEnd: 4, rowStart: 2, rowEnd: 3, lineHeight: 40 }, { id: 3, text: 'Item 3', colStart: 3, colEnd: 4, rowStart: 1, rowEnd: 3, lineHeight: 50 }, ]" /> </template> <script> import Grid from '@/components/Grid.vue' export default { components: { Grid } } </script> ``` 这里我们定义了一个具有3行3列、20像素间隔的网格,然后在`items`数组中定义了三个项,分别越不同的行和列,并具有不同的行高。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值