html - 我怎样才能使水平容器中的列表项均匀地填充整个容器而没有间距?

标签 html css flexbox

我已经使用 flexbox 制作了一个水平列表,它均匀地填充了它的容器。

但是当我尝试在悬停期间更改列表项的背景时,您会看到每个元素之间都有空白。有什么方法可以在使列表项填满容器的整个宽度的同时摆脱这种情况?

.wrapper {
  margin-top: 30px;
  border: 1px solid lightblue;
  width: 100%;
}

ul {
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
}

li {
  color: black;
  cursor: pointer;
  list-style: none
}

li:hover {
  background-color: lightblue;
  color: white;
}
<div class="wrapper">
  <ul>
    <li>123</li>
    <li>ABC</li>
    <li>789</li>
    <li>XYZ</li>
  </ul>
</div>

例如,这里的元素间隔均匀,但每个元素之间有很多空间。

当我将鼠标悬停在列表项上时,我想要的是这样的:

enter image description here

有什么办法吗?

最佳答案

删除所有外部填充/边距,然后使用 flex:1li 内的填充:

.wrapper {
  margin-top: 30px;
  border: 1px solid lightblue;
  width: 100%;
}

ul {
  padding:0;
  margin:0;
  display: flex;
  flex-wrap: wrap;
}

li {
  color: black;
  flex:1;
  text-align:center;
  padding:10px 0;
  cursor: pointer;
  list-style: none
}

li:hover {
  background-color: lightblue;
  color: white;
}
<div class="wrapper">
  <ul>
    <li>123</li>
    <li>ABC</li>
    <li>789</li>
    <li>XYZ</li>
  </ul>
</div>

关于html - 我怎样才能使水平容器中的列表项均匀地填充整个容器而没有间距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49385530/

相关文章:

javascript - 从 onload 事件调用对象函数会使其失去上下文

html - 如何使用 HTML5 Canvas 和 JavaScript 使绘制的对象显示在图像上?

javascript - 在 html 中修复 Google 表格标题

css - 选择器中的伪类

html - Flexbox 的 row-reverse 属性是不是把行反转了?

html - CSS 图片库

html - CSS 悬停效果只适用于绝对定位?

html - 缩放 iframe 以适本地适应

html - Flexbox - 所有卡片的高度相同

html - CSS 包装子项,如列表项