Заполнить строку элементами фиксированной максимальной шириныCSS

Разбираемся в CSS
Ответить
Anonymous
 Заполнить строку элементами фиксированной максимальной ширины

Сообщение Anonymous »

Когда в контейнере есть свободное место, браузер увеличивает ширину элементов, чтобы заполнить его.
Мне нужно противоположное поведение, чтобы браузер уменьшал ширину элементов настолько, чтобы освободить место для следующий элемент.
Я знаю, как это сделать с помощью JS, но мне хотелось бы использовать чистый CSS-решение.
Я разместил код JS ниже, чтобы вы могли увидеть, что я делаю. среднее значение.

Код: Выделить всё

function resizeLayout() {
var item_max_size = 200;

var container = document.getElementsByClassName('container')[0];
var container_width = container.getBoundingClientRect()['width'];

var items_need = Math.ceil(container_width / item_max_size);
var new_width = container_width / items_need + 'px';
var items = container.getElementsByClassName('item');

for (const node of items) {
node.style.width = new_width;
}
}

window.addEventListener('resize', function(e) {
resizeLayout();
});

window.addEventListener('load', function(e) {
resizeLayout();
});

Код: Выделить всё

html {
height: 100%;
}

body {
margin: 0px;
width: 100%;
height: 100%;
}

.container {
width: 100%;
height: 100%;
display: flex;
flex-wrap: wrap;
align-content: flex-start;
background: yellow;
}

.item {
background: green;
border: 2px black dashed;
box-sizing: border-box;
width: 200px;
height: 200px;
}



Подробнее здесь: https://stackoverflow.com/questions/787 ... h-elements
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «CSS»