css Flex列的自动宽度

slhcrj9b  于 2024-01-09  发布在  其他
关注(0)|答案(4)|浏览(111)

如何设置第一个flex列的宽度,使其宽度仅为其内容的大小?http://codepen.io/anon/pen/rrKkOW

<div class="flex">
  <div class="inside inside-left">Left</div>
  <div class="inside inside-right">RIght</div>
</div>

.flex {
  display: flex;
}

.inside {
  flex: 1;
  border: 1px solid #000;
}

字符集
设置width: auto不工作.像flex-basis: content这样的东西会很好:)

6gpjuf90

6gpjuf901#

不要给予该列flex:1,因为它将扩展以占用所允许的空间。
实际上,根本不要给予它任何flex值,它将默认为width:auto

.flex {
  display: flex;
}
.inside {
  border: 1px solid #000;
}
.inside-right {
  flex: 1;
  background:#c0ffee;
}

个字符
编辑:似乎意图是让每个“左”元素都是相同的大小。
这是不可能的flexbox,但CSS表格可以做到这一点。

.row {
  display: table-row;
}
.inside {
  display: table-cell;
  border: 1px solid grey;
}
.inside-left {
  background: lightgreen;
}
<div class="row">
  <div class="inside inside-left">Left</div>
  <div class="inside inside-right">RIght</div>
</div>

<div class="row">
  <div class="inside inside-left">Left Left Left LeftLeft Left</div>
  <div class="inside inside-right">RIghtRIghtRIght RIght</div>
</div>

<div class="row">
  <div class="inside inside-left">Left Left Left LeftLeft LeftLeft Left Left LeftLeft Left</div>
  <div class="inside inside-right">RIghtRIghtRIght RIghtRIghtRIght</div>
</div>

的字符串

rwqw0loc

rwqw0loc2#

你必须稍微调整一下你的HTML来实现你想要的:

.flex {
  display: flex;
}
.inside {
  border: 1px solid #000;
}
.flex-grow {
  flex: 1;
}
.inside-right {
  background:#c0ffee;
}

个字符

lb3vh1jj

lb3vh1jj3#

如果你想让每一栏都和它的内容一样宽,你需要使用here

tuwxkamq

tuwxkamq4#

这是一个很老的问题,至今没有公认的答案。现在width: fit-content;widely supported,所以将fit-content设置为父元素就可以了。

相关问题