如何设置第一个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;
}
Run Code Online (Sandbox Code Playgroud)
设置width: auto不起作用...有点像是flex-basis: content很高兴:)
Pau*_*e_D 13
不要提供该列,flex:1因为它会扩展以占用尽可能多的空间.
事实上,根本不给它任何弹性值,它将默认为width:auto.
.flex {
display: flex;
}
.inside {
border: 1px solid #000;
}
.inside-right {
flex: 1;
background:#c0ffee;
}Run Code Online (Sandbox Code Playgroud)
<div class="flex">
<div class="inside inside-left">Left</div>
<div class="inside inside-right">RIght</div>
</div>
<div class="flex">
<div class="inside inside-left">Left Left Left LeftLeft Left</div>
<div class="inside inside-right">RIghtRIghtRIght RIght</div>
</div>
<div class="flex">
<div class="inside inside-left">Left Left Left LeftLeft LeftLeft Left Left LeftLeft Left</div>
<div class="inside inside-right">RIghtRIghtRIght RIghtRIghtRIght</div>
</div>Run Code Online (Sandbox Code Playgroud)
编辑:似乎意图是每个"左"元素都是相同的大小.
这对Flexbox来说是不可能的,但CSS Tables可以实现这一点.
.row {
display: table-row;
}
.inside {
display: table-cell;
border: 1px solid grey;
}
.inside-left {
background: lightgreen;
}Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)
你必须稍微重构你的 HTML 来实现你想要的:
.flex {
display: flex;
}
.inside {
border: 1px solid #000;
}
.flex-grow {
flex: 1;
}
.inside-right {
background:#c0ffee;
}Run Code Online (Sandbox Code Playgroud)
<div class="flex">
<div>
<div class="inside">Left</div>
<div class="inside">Left Left Left LeftLeft Left</div>
<div class="inside">Left Left Left LeftLeft LeftLeft Left Left LeftLeft Left</div>
</div>
<div class="flex-grow">
<div class="inside inside-right">Right</div>
<div class="inside inside-right">RIghtRIghtRIght RIght</div>
<div class="inside inside-right">RIghtRIghtRIght RIghtRIghtRIght</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)