【问题标题】:making each div fill 1/6th of screen width [closed]使每个 div 填充屏幕宽度的 1/6 [关闭]
【发布时间】:2020-02-14 03:28:40
【问题描述】:

我正在尝试将 6 个 div 元素并排排列在页面上。但是我的代码只将它们对齐到左边。我该如何解决这个问题?

这是我的代码:

.flex-parent {
  display: flex;
}

.flex-child {
  flex: 1;
}
<div class='parent flex-parent'>

  <div class='div1 flex-child'></div>
  <div class='div2 flex-child'></div>
  <div class='div3 flex-child'></div>
  <div class='div4 flex-child'></div>
  <div class='div5 flex-child'></div>
  <div class='div6 flex-child'></div>

</div>

【问题讨论】:

  • 宽度:计算(100%/6)
  • @MarlonBerdefy 他正在尝试使用 flexbox 而非 calc() 来实现这一目标。
  • 您的代码运行良好:jsfiddle.net/evy2jzf9 您能澄清一下具体问题是如何发生的吗?
  • 请澄清您的具体问题或添加其他详细信息以准确突出您的需要。正如目前所写的那样,很难准确地说出你在问什么。
  • 你可以简单的把宽度:16.6vw

标签: html css flexbox


【解决方案1】:

将 flex-grow 设置为 1,将 flex-shrink 设置为 0,将 flex-basic 设置为 0px,这样您的所有空间都可用,并且每个子元素将占用相同的空间,因此您的所有六个子元素都将拥有相同的空间

.flex-child {
  flex: 1 0 0px;
}

.flex-parent {
  display: flex;
}

.flex-child {
  flex: 1 0 0px;
  background: red;
  border: 1px solid black;
  height: 20px;
}
<div class='parent flex-parent'>

  <div class='div1 flex-child'>
  </div>

  <div class='div2 flex-child'>
  </div>

  <div class='div3 flex-child'>
  </div>

  <div class='div4 flex-child'>
  </div>

  <div class='div5 flex-child'>
  </div>

  <div class='div6 flex-child'>
  </div>

</div>

【讨论】: