vue中v-for循环列表根据条件判断两边对齐效果(常用)

首先上图解释:这里写图片描述
黑框元素宽width:22%;
循环给每个黑框添加class(也就是添加margin-left:4%;margin-top:20px);
因为最左边一竖排我们不需要添加class,则我们需要条件判断是否需要添加class

html代码:

...
//绑定class根据判断条件添加class,
//imgListItem_mg(index)传入下标号参数,返回true or false
<div class="imgList_item "  v-for="(o, index) in 7" :class="{margin: imgListItem_mg(index)}" :key="o">
//中间代码省略
...
</div>
            ....

style

...
.imgList>.imgList_item{width: 22%;display: inline-block;}
.imgList>.margin{margin-left: 4%;margin-top: 20px;}//添加class的样式
...

js代码

...
 methods: {
 imgListItem_mg:function(index){
   var pre=index+1;//下标号+1则是当前第几个元素
   console.log(pre);
   var lineNumber=Math.ceil(pre/4);//行数,我的是4个为一行,不满4个也为1行,所以上取整
   var preMar=(lineNumber*4)-3;//算出不需要添加class的元素
   if(pre!=preMar){
     return true;
   }else if(pre=preMar){
     return false;
   }
 }
}
...
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 你可以在Vue使用v-for指令来循环生成一行三列的列表。具体步骤如下: 1. 在Vue的data定义一个数组,包含要显示的数据。 2. 在HTML模板使用v-for指令,循环遍历数组,并使用CSS样式控制每个数据项的位置。 例如,以下是一个简单的代码示例: ```html <template> <div class="container"> <div class="row"> <div class="col-md-4" v-for="(item, index) in items" :key="index"> <div class="card"> <div class="card-body"> <h5 class="card-title">{{ item.title }}</h5> <p class="card-text">{{ item.description }}</p> </div> </div> </div> </div> </div> </template> <script> export default { data() { return { items: [ { title: 'Item 1', description: 'This is the first item.' }, { title: 'Item 2', description: 'This is the second item.' }, { title: 'Item 3', description: 'This is the third item.' }, { title: 'Item 4', description: 'This is the fourth item.' }, { title: 'Item 5', description: 'This is the fifth item.' }, { title: 'Item 6', description: 'This is the sixth item.' } ] } } } </script> <style> .container { margin: 20px auto; } .card { margin-bottom: 20px; } </style> ``` 在上面的代码,我们定义了一个包含六个数据项的数组,并使用v-for指令循环遍历每个数据项。使用Bootstrap的栅格系统,我们将每个数据项放在一个具有col-md-4类的div,以实现一行三列的效果。最后,我们使用CSS样式设置卡片的边距。 ### 回答2: 在Vue,可以使用v-for指令来循环渲染一行三列的列表。 首先,在Vue组件定义一个数组,里面包含要循环渲染的数据,比如: ``` data() { return { items: [1, 2, 3, 4, 5, 6] } } ``` 接下来,在模板使用v-for指令来循环渲染列表,使用v-bind指令来绑定每个项的数据,比如: ``` <div> <div v-for="item in items" :key="item"> {{ item }} </div> </div> ``` 上述代码v-for指令会遍历items数组的每一项,并将当前项的值赋给item变量,然后在循环渲染当前项的值。使用:key绑定每一项的唯一标识,以提高渲染性能。 为了实现一行三列的布局,可以使用CSS来设置每个项的宽度为33.33%(或根据实际需求设置),并设置适当的样式,比如: ``` <style> .item { width: 33.33%; display: inline-block; text-align: center; } </style> ``` 最后,将以上代码整合在Vue组件,就可以在浏览器看到一行三列的列表。每个项的宽度为33.33%,并按照数组的值依次渲染。 以上就是在Vue实现一行三列列表的简单方式,通过v-for指令和CSS样式来实现。根据具体需求,还可以进一步扩展和定制列表的样式和布局。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搁浅_9527

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值