Комментарии 5
А как бы задать параметры флексирования компонента разные для разных осей, чтобы поле ввода числа тянулось по горизонтали, но не растягивалось по вертикали независимо от внешнего направления потока?
Что-то мне кажется, что я вообще не понял вопрос. Но про растягивание поля ввода можно посмотреть в сторону field-sizing
<div class="row">
<input placeholder="ok" />
<input placeholder="ok" />
</div>
<div class="col">
<input placeholder="wtf" />
<input placeholder="wtf" />
</div>html, body {
width: 100%;
height: 100%;
}
div {
display: flex;
height: 50%;
}
.row {
flex-direction: row;
}
.col {
flex-direction: column;
}
input {
flex: 1 1 auto; // flex-horizontal: 1 1 auto
height: 1rem; // flex-vertical: 0 0 auto
}
Ага, теперь понял. Пуленепробиваемого решения у меня нет
Я так понял, что
.col input {
flex-grow: 0;
}не вариант для решения =)
Тогда можно попробовать гриды с auto-flow
.row {
grid-auto-flow: column;
grid-auto-columns: 1fr;
}
.col {
grid-auto-flow: row;
align-content: start;
}
input {
height: 1rem;
}
Ещё есть современный вариант, который не везде будет работать со style queries. По сути на контенере можно проверить какое CSS-свойство с каким значением указано и в зависимости от этого у ребёнка изменить значение
div {
container-type: style;
}
@container style(flex-direction: column) {
input {
flex-grow: 0;
}
}но честно сказать я его даже не проверял, но по смыслу он точно подходит
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Baseline: январь 2026