问题描述
我的问题是关于v-for
指令来渲染正方形的嵌入式div。我不明白为什么它不能在纯HTML和v-for
循环之间呈现相同的效果=>请参见下面的代码段
但是,当我检查代码时,它看起来完全一样:
我想知道为什么会出现这种差异,以及是否可以使用v-for
指令获得相同的结果而无需添加边距或填充或任何CSS技巧。
new Vue({
el: "#app"
})
.red-square {
background-color: #dc3545;
height: 10px;
width: 10px;
display: inline-block;
margin: 0;
border: 0;
}
.container {
width: 200px;
}
<script src="https://unpkg.com/vue@2.6.8/dist/vue.min.js"></script>
<div id="app">
<div>With v-for</div>
<div class="container">
<div v-for="i in 5" class="red-square"></div>
</div>
<br>
<div>With plain html</div>
<div class="container">
<div class="red-square"></div>
<div class="red-square"></div>
<div class="red-square"></div>
<div class="red-square"></div>
<div class="red-square"></div>
</div>
</div>
解决方法
在使用inline-block
作为显示属性值时,当使用div进行换行时,它会在div之间呈现空白:
<div></div>
<div></div>
<div></div>
,但是当它们在同一行中写入时,它将删除空格:
<div></div><div></div><div></div>
v-for指令如何呈现div从而删除该空间。