javascript - Vue div显示网格删除行之间的多余空间

标签 javascript css twitter-bootstrap vue.js vuejs2

我是 Vue 新手,对于这个元素,我试图在 div 的每行中显示 2 个玩家。我使用 display: grid; CSS 作为playerDiv id 解决了这个问题。问题是我现在遇到的问题是它在第一、第二和第三行之间造成了巨大的差距。有没有办法消除每行之间的间隙?

我将 playerDiv 的高度设为 440px,将 eachPlayerDiv 的高度设为 30px。我无法更改这一点,因为有时待办事项的数据库值可能只有 2 名玩家或 12 名玩家。有没有一种方法可以在不改变我定义的高度的情况下解决间隙问题?

目前显示为

Player 1                       Player 2




Player 3                       Player 4




Player 5                       Player 6

有没有办法将玩家显示为

Player 1                       Player 2
Player 3                       Player 4
Player 5                       Player 6

JsFiddle 链接 = https://jsfiddle.net/ujjumaki/f0js3pLa/25/

查看

<div id="app">

  <div id="playerDiv">
    <div v-for="element in todos" class="eachPlayerDiv">
      {{element.text}}
    </div>
  </div>
</div>
<style>
#playerDiv{
  height:440px;
  background-color: white;
  display: grid;
  grid-template-columns: 1fr 1fr;
  background-color:red;
}

.eachPlayerDiv{
  border-style:solid;
  background-color:yellow;
  height: 30px;
}
</style>

方法

new Vue({
  el: "#app",
  data: {
    todos: [
      { text: "David", id: 1 },
      { text: "John", id: 2 },
      { text: "Alek", id: 3 },
      { text: "Joshua", id: 4},
      { text: "Jonny", id: 5},
      { text :"Sam", id:6}
    ]
  },
  methods: {
    toggle: function(todo){
        todo.done = !todo.done
    }
  }
})

最佳答案

尝试添加 align-content: start;centerend,具体取决于您想要放置 playerDiv 的位置> 的

new Vue({
  el: "#app",
  data: {
    todos: [
      { text: "David", id: 1 },
      { text: "John", id: 2 },
      { text: "Alek", id: 3 },
      { text: "Joshua", id: 4},
      { text: "Jonny", id: 5},
      { text :"Sam", id:6}
    ]
  },
  methods: {
    toggle: function(todo){
        todo.done = !todo.done
    }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">

  <div id="playerDiv">
    <div v-for="element in todos" class="eachPlayerDiv">
      {{element.text}}
    </div>
  </div>
</div>
<style>
#playerDiv{
  height:440px;
  background-color: white;
  display: grid;
  grid-template-columns: 1fr 1fr;
  background-color:red;
  align-content: start;
}

.eachPlayerDiv{
  border-style:solid;
  background-color:yellow;
  height: 30px;
}
</style>

关于javascript - Vue div显示网格删除行之间的多余空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69037131/

相关文章:

javascript - 如何让div的背景颜色在页面刷新时随机变化

jquery - 让Flash消息在rails中的同一页面中消失

twitter-bootstrap - Bootstrap 5 - 3 列布局和文本右对齐

javascript - 如何让 if 条件看起来更简洁?

javascript - 根据数字使用 Javascript 更改文本颜色

javascript - 刷新页面时性别信息消失

html - 关键帧动画回到初始状态

css - Bootstrap - 表单元素自动布局

html - CSS - 将文本与图标居中对齐

javascript - Bootstrap 轮播分页/幻灯片编号问题