Директива Vue v-for не отображает правильный html

#html #css #vue.js #vuejs2 #v-for

#HTML #css #vue.js #vuejs2 #v-for

Вопрос:

У меня есть html-макет, который мне нужно преобразовать в динамический компонент Vue.

Моя проблема связана с v-for директивой для отображения встроенных divs квадратов. Я не понимаю, почему он не отображает то же самое между обычным html и v-for loop => см. Фрагмент ниже
, однако, когда я проверяю код, он выглядит точно так же:

введите описание изображения здесь

Я хотел бы знать, почему эта разница и могу ли я получить тот же результат с 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>  

Комментарии:

1. Вы забыли прикрепить фрагмент

2. @DavidGo он предоставляет его, просто нажмите на фрагмент кода запуска , чтобы увидеть результат

3. ах, я использовал мобильную версию, у них там нет этой функции

Ответ №1:

При использовании inline-block в качестве значения свойства отображения он отображает пробел между разделами, когда они записываются с разрывом строки, например :

 <div></div>
<div></div>
<div></div>
  

но он удаляет пробел, когда они записываются в одной строке следующим образом :

 <div></div><div></div><div></div>
  

так директива v-for отображает divs, который удаляет это пространство.