Вот пример, который я сделал для жидких и фиксированных списков реагирования ( play с шириной окна, чтобы увидеть разницу между ними) https://jsfiddle.net/ahentea/0542ynvh/
Для списка жидкости:
ul {
display: block;
width: 100%;
clear: both;
font-size: 0;
margin: 0;
padding: 0;
text-align: center;
}
ul li {
list-style: none;
width: 25%;
display: inline-block;
}
В приведенном выше примере каждый li
имеет значение 25% из 100%, поэтому вы можете иметь 4 li
в строке, но, используя nth-child, вы можете сделать любой из li
имеют явную ширину, просто убедитесь, что она будет равна 100%
всему, что попадет под нее.
Для списка с элементами фиксированной ширины:
ul {
display: block;
width: 100%;
clear: both;
font-size: 0;
margin: 0;
padding: 0;
text-align: center;
}
ul li {
list-style: none;
display: inline-block;
}
ul li:nth-child(1) {
width: 300px;
}
ul li:nth-child(2) {
width: 225px;
}
ul li:nth-child(3) {
width: 130px;
}
ul li:nth-child(4) {
width: 80px;
}
В этом случае, когда ширина контейнера не может вместить ширину каждого li
, тогда они будут опускаться снизу от последнегок первому.
Pro tip , если вы решите реализовать этот метод, убедитесь, что ни один из li не превышает минимальное окно, иначе они будут переполнены.Например, если один из ваших li
имеет ширину 450 px
, то для всех окон шириной, меньшей 450 px
, li
будет overflow
Pro tip 2 Когдас помощью display: inline-block
по умолчанию добавляются пробелы между элементами, которые можно освободить от этого, добавив к родительскому элементу font-size: 0