CSS/Flexbox:与最大元素相同的宽度,如列

zim*_*t28 7 css flexbox

我为我的应用程序构建了一个列表组件,由于样式,我无法使用表.

我希望"行"中的元素从上到下具有相同的宽度,如列.代码看起来类似于:

<div class="row">
  <div class"element>iPhone </div>
  <div class"element>Buy an iPhone now!</div>
</div>
<div class="row">
  <div class"element>Airport Express </div>
  <div class"element>Buy an Airport Express now!</div>
</div>
<div class="row">
  <div class"element>iPad </div>
  <div class"element>Buy an iPad now!</div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是它目前的样子:

它看起来像什么

这就是我想要的:

应该是什么样的

有没有办法做到这一点?

Ori*_*iol 6

使用CSS表格:

  • 用行分隔行 border-spacing
  • 细胞中的边界.你可以border-radius用来围绕它们.
  • 伪元素显示为单元格以填充右侧的可用空间
  • white-space: nowrap 防止细胞因伪元素而收缩.

.wrapper {
  display: table;
  border-spacing: 0 10px;
}
.row {
  display: table-row;
  border: 1px solid;
}
.row::after {
  content: '';
  display: table-cell;
  width: 100%;
  border: 1px #6AACC9;
  border-style: solid none;
}
.element {
  display: table-cell;
  border: 1px solid #6AACC9;
  border-right-color: #adadad;
  border-left-style: none;
  padding: 5px;
  white-space: nowrap;
}
.element:first-child {
  border-left-style: solid;
  border-radius: 5px 0 0 5px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="wrapper">
  <div class="row">
    <div class="element">iPhone </div>
    <div class="element">Buy an iPhone now!</div>
  </div>
  <div class="row">
    <div class="element">Airport Express </div>
    <div class="element">Buy an Airport Express now!</div>
  </div>
  <div class="row">
    <div class="element">iPad </div>
    <div class="element">Buy an iPad now!</div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)