Страницы

Поиск по вопросам

вторник, 9 октября 2018 г.

Ширина дочерних элементов flexbox

Есть пример верстки. При изменении размеров окна все, как и полагается, у тегов изменяется ширина и меняется их количество на строке.
Но если в последней строке элементов
меньше, чем в предыдущих строках, то данные элементы растягиваются.
Возможно ли сделать так, чтобы в последней строке ширина
соответствовала элементам из предыдущих строк.
P.S. Для наглядности. Сейчас, как на красных блоках, a хотелось бы как на зеленых
P.S.S С помощью JS как это сделать знаю, интересует именно СSS.
B.addEventListener("click", add); C.addEventListener("click", take); function add() { A.style.width = A.offsetWidth + 50 + "px"; } function take() { A.style.width = (A.offsetWidth - 50) + "px"; } .work { display: flex; min-width: 67.5em; max-width: 96em; min-height: 55em; /*-----*/ font-size: 4px; padding: 3.75em; background-color: hsla(0, 0%, 100%, 0.7); box-sizing: border-box; } .faculty { display: block; /*-----*/ background-color: #F0E68C; } .container_link { display: flex; flex-direction: row; flex-wrap: wrap; } a { min-width: 5em; flex: 1; display: block; /*-----*/ font-size: 2.25em; margin: 1.3em 0.5em 0; background-color: hsla(0, 0%, 90%, 1); text-decoration: none; border: 1px dashed #3B8686; padding: 0.83em; }



Ответ

То, чего вы хотите добиться средствами чистого CSS, возможно, но флексбокс тут не поможет, потому что он одномерный и для полноценной сетки не годится. Воспользуйтесь для этого display: grid, а браузерам, которые не поддерживают, подсуньте ваше JS-решение.
Вот небольшой пример сетки, не нужны даже медиа-выражения (разверните на весь экран и подвигайте край браузера):
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); grid-gap: 10px 10px; background-color: black; } .grid__item { background-color: red; height: 40px; }


Комментариев нет:

Отправить комментарий