html - Flexbox size child like table cell?

标签 html css html-table flexbox

我遇到了 Flexbox 问题。我尝试了很多变体,但没有找到解决方案。

我需要子元素与父容器一起拉伸(stretch)

第一行的宽度还可以,但背景也应该根据内容拉伸(stretch)

关于第二行,背景拉伸(stretch)很好,但它的宽度相等,我需要宽度取决于内容,比如auto宽度....

我需要它拉伸(stretch),就像在变体 3 中使用 display: table 时一样。

.row {
  display: flex;
  justify-content: space-around;
  margin: 20px;
  color: #fff;
}

.row .col {
  min-height: 40px;
  background: #333;
  padding: 10px;
}

.row-v2 {
  flex-wrap: wrap;
}

.row-v2 .col {
  flex: 1;
}

.row-table {
  width: 100%;
  display: table;
}

.col:nth-child(2) {
  background: #666;
}

.row-table .col {
  display: table-cell;
  padding: 10px;
  background: #333;
  color: #fff;
}
<h1>Variant 1</h1>
<div class="row">
  <div class="col">test</div>
  <div class="col">test 1234</div>
  <div class="col">e</div>
</div>

<h1>Variant 2</h1>
<div class="row row-v2">
  <div class="col">test</div>
  <div class="col">test 1234</div>
  <div class="col">t</div>
</div>

<h1>Variant with table method</h1>
<div class="row-table">
  <div class="col">test</div>
  <div class="col">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolore, sit repellendus iste doloremque architecto est et voluptate, blanditiis culpa neque!</div>
  <div class="col">Lorem ipsum dolor sit amet.</div>
</div>

最佳答案

试试这个。我添加了 col-md-auto 类和它的 css,如下所示:

.col-md-auto {
  -moz-box-flex: 1;
  flex:1 1 auto;
  width: auto;
}

.row {
  display: flex; 
  margin: 20px;
  color: #fff;
}

.row .col {
  min-height: 40px;
  background: #333;
  padding: 10px;
}

.row-v2 {
  flex-wrap: wrap;
}

.row-v2 .col {
  flex: 1;
}

.row-table {
  width: 100%;
  display: table;
}

.col:nth-child(2) {
  background: #666;
}

.row-table .col {
  display: table-cell;
  padding: 10px;
  background: #333;
  color: #fff;
}
.col-md-auto {
  -moz-box-flex: 1;
  flex:1 1 auto;
  width: auto;
}
<h1>Variant 1</h1>
<div class="row row-v1">
  <div class="col col-md-auto">test</div>
  <div class="col col-md-auto">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolore, sit repellendus iste doloremque architecto est et voluptate</div>
  <div class="col col-md-auto">e</div>
</div>

<h1>Variant 2</h1>
<div class="row row-v2">
  <div class="col">test</div>
  <div class="col">test 1234</div>
  <div class="col">t</div>
</div>

<h1>Variant with table method</h1>
<div class="row-table">
  <div class="col">test</div>
  <div class="col">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolore, sit repellendus iste doloremque architecto est et voluptate, blanditiis culpa neque!</div>
  <div class="col">Lorem ipsum dolor sit amet.</div>
</div>

关于html - Flexbox size child like table cell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47048516/

相关文章:

css - div中的标签布局

html - CSS-Bug 在滚动时导致重复元素

css - 使用 Bootstrap 的类在表内调整输入文本的大小

html - 在表格中悬停不起作用

html - 图片在 Safari 浏览器中不显示

javascript在按下回车时设置一个变量值

css - 在 flexbox 列中创建具有固定 px 高度的单个元素

html - 列表项标题更改背景颜色 onClick

html - 将鼠标悬停在嵌套的 div 上不起作用

html - 表格的小问题