假设我有一份包含多个行的包装清单。然后,我想在所有项目之间添加一个间隙。但是,我不想在每行的第一项之前有一个空格,而在每行的最后一项之后没有任何空格。

您可以通过每行具有明确的项目数来实现此目的,但是我希望每行的项目数是动态的。

到目前为止看起来像这样,但是我还无法弄清楚如何使它在两侧没有边距地工作。



.a {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  background: yellow;
}

.b {
  width: 50px;
  margin: 5px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: red;
}

<div class='a'>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
  <div class='b'>1</div>
</div>





注意每行开头的空格。我不想有任何空间。想知道如何做到这一点。

与垂直相同。我不希望整个内容的顶部和底部都有空间,而只是内部元素之间的空间。

最佳答案

将列表包装在容器div中,为列表提供负的边距以抵消列表项的边距,并在容器中隐藏溢出:



.c {
  overflow: hidden;
}

.a {
  margin: -5px;
}

/* your original CSS */

.a {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  background: yellow;
}

.b {
  width: 50px;
  margin: 5px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: red;
}

<div class='c'>
  <div class='a'>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
    <div class='b'>1</div>
  </div>
</div>

关于css - 如何仅在包装Flexbox的除第一项和最后一项以外的所有元素上设置边距,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56465430/

10-16 03:54