Не давайте этот столбец flex:1
, как она будет расширяться, чтобы занять столько же места, как разрешено.
На самом деле, не давайте никаких значений гибкости, и по умолчанию он будет равен width:auto
.
.flex {
display: flex;
}
.inside {
border: 1px solid #000;
}
.inside-right {
flex: 1;
background:#c0ffee;
}
<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>
EDIT: Кажется, что намерение состояло в том, чтобы каждый элемент "левый" быть того же размера.
Это невозможно с помощью 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>
Спасибо за комментарий, но можно ли сделать все левые столбцы одинаковой ширины, шириной самой длинной? Это было моим намерением, почему я думал, что flex может быть хорошей идеей для использования :) –
Нет, это невозможно с помощью flexbox. Однако вы можете сделать это с помощью таблицы таблиц CSS. http://codepen.io/Paulie-D/pen/xEzagW –