在vue中,div两行十列显示
需要以循环的方式实现
并且每个div上显示如图所示的编号
双层v-for
<div v-for="(item, index=1) in 2" :key="index" class="v">
<div v-for="(item1,index1) in 10">
{{index+1}}-{{index1+1}}
</div>
</div>
.v{
display:flex;
}
.v div{
width:100px;
height:30px;
}
这个需求可以通过使用Vue的v-for指令以及一些CSS样式来实现。
首先,需要在Vue的模板中使用v-for指令来循环生成十个div。假设编号的范围是1到10,可以使用一个数组来表示这个范围,然后使用v-for指令来循环生成每个div。生成div的过程中,可以使用插值表达式来显示当前的编号。
接下来,可以使用CSS的flex布局来实现两行十列的效果。可以为父容器设置display属性为flex,同时设置flex-wrap属性为wrap,即可让子元素自动换行。然后,可以设置子元素的flex属性为1,即可让每个子元素均匀分布在父容器中。
下面是一个可能的解决方案的示例代码:
<template>
<div class="container">
<div v-for="number in numbers" :key="number" class="item">{{ number }}</div>
</div>
</template>
<script>
export default {
data() {
return {
numbers: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
};
}
};
</script>
<style>
.container {
display: flex;
flex-wrap: wrap;
}
.item {
flex: 1;
border: 1px solid black;
text-align: center;
padding: 10px;
}
</style>
这样,就可以实现将十个div以两行十列的形式进行显示,并且每个div显示相应的编号。
上图,代码在后面
代码如下:
//css
.Box{
width: 680px;
margin: 0 auto;
border: 1px solid #ff0000;
display: grid;
grid-template-columns: repeat(10, 50px);//固定10列 每个子元素50px宽
//自动根据父元素长宽计算
//grid-template-columns: repeat(auto-fill, 50px);//列 每个子元素50px宽 自动根据父元素宽度计算能放几个
//grid-template-rows: repeat(auto-fill, 50px);//行 每个子元素50px高 自动根据父元素高度计算能放几个
gap: 20px;//行列间距都是20px
.box{
width: 50px;
height: 50px;
background: #000000;
color: #ffffff;
display: flex;
justify-content: center;
align-items: center;
}
}
//js
array: [
'1-1','1-2','1-3','1-4','1-5','1-6','1-7','1-8','1-9','1-10',
'2-1','2-2','2-3','2-4','2-5','2-6','2-7','2-8','2-9','2-10'
]
//html
<div class="Box">
<div v-for="(item, index) in array" :key="'item' + index" class="box">{{item}}</div>
</div>