Как сделать вторую колонку, занимающая все пустое пространство по ширине?
Есть родительский блок, и 2 дочерних. Первая колонка фиксированной ширины. Как сделать, чтобы вторая колонка занимала все пустое пространство по ширине? Родительский блок имеет свойство display: flex.
Я делаю так, но думаю, есть более правильное решение.
.wrapper {
display: flex;
}
.column_one {
width: 400px;
}
.column_two {
width: calc(100% - 400px);
}
<div class="wrapper">
<div class="column_one"></div>
<div class="column_two"></div>
</div>
Ответы (4 шт):
Автор решения: BlackStar1991
→ Ссылка
Если поддержка только вовременных браузеров, то можно так
body{
margin: 0;
}
.wrapper {
display: flex;
width: 100%;
}
.wrapper > div{
min-height: 30px;
}
.column_one {
width: 400px;
background-color: #f00;
}
.column_two {
width: calc(100% - 400px);
background-color: #ff0;
}
<div class="wrapper">
<div class="column_one"></div>
<div class="column_two"></div>
</div>
Автор решения: ΝNL993
→ Ссылка
Можно просто упростить себе задачу, задавая ширину в переменной, вот так:
.wrapper {
display: flex;
height: 20px;
}
.column_one {
width: var(--width);
background: red;
}
.column_two {
width: calc(100% - var(--width));
background: blue;
}
<div class="wrapper" style="--width: 400px;">
<div class="column_one"></div>
<div class="column_two"></div>
</div>
Не думаю что есть более правильное решение. Можно конечно что-то с inline-block'ом сделать, но вряд ли это поможет, т.к. вы используете flex.
Автор решения: Евгений Ли
→ Ссылка
Так пойдёт?))
.wrapper {
display: flex;
min-height: 100px;
}
.column_one {
width: 100%;
max-width: 200px;
background: red;
}
.column_two {
width: 100%;
background: green;
}
<div class="wrapper">
<div class="column_one"></div>
<div class="column_two"></div>
</div>
Автор решения: Oliver Patterson
→ Ссылка
А flex-grow уже не устраивает?
.wrapper {
display: flex;
min-height: 100px;
}
.column_one {
width: 400px;
background-color: #DC4242;
}
.column_two {
flex-grow: 1;
background-color: green;
}
<div class="wrapper">
<div class="column_one"></div>
<div class="column_two"></div>
</div>