- Теория
- Теория
Поля ввода с динамической шириной
Ещё один случай, когда может пригодиться флексбокс — поля ввода с динамической шириной. Требования к ним такие:
- На одной строке с полем могут находиться другие элементы: кнопки, ссылки, подписи.
- Размер дополнительных элементов не определён, он зависит от их содержимого.
- При этом поле должно растягиваться на всё оставшееся в родительском контейнере место.
- И изменять ширину при изменении размеров контейнера.
Решить эту задачу можно только при помощи флексбокса. Превратим контейнер поля ввода во флекс-контейнер, все элементы внутри него превратятся во флекс-элементы, базовый размер которых будет зависеть от их содержания — flex-basis: auto;
. И останется только задать ненулевой коэффициент растягивания полям ввода.
В широком контейнере всё будет работать отлично. Проблемы могут появиться в слишком узких контейнерах: по умолчанию поля ввода не будут сжиматься после определённой ширины, что приведёт к выпаданию текста из остальных элементов.
Чтобы справиться с этими проблемами, надо задать всем элементам кроме полей ввода нулевой коэффициент сжатия, а самим полям ввода явно прописать минимальную ширину.
В этом задании в селекторах используется псевдокласс :not
, который разбирается в части «Селекторы. Погружение».
- index.html
Вы перешли на другую страницу
Кликните внутри мини-браузера, чтобы поставить фокус в это окно.