В адаптивном режиме мне нужно поместить какой-то один линейный li в многострочный li. lis не одинаковы по ширине. Невозможно использовать %. lis начнет с попрошайничества каждой строки.
Как я могу это сделать ?
@abu abu, не могли бы вы добавить свой код вместо изображения?
@abu abu Надеюсь, это поможет тебе w3schools.com/howto/howto_css_contact_chips.asp






Вы можете сделать что-то подобное, увидеть эту скрипку
ul li {
display: inline-block;
padding: 20px;
border: 1px solid #000;
border-radius: 20px;
list-style: none;
margin: 0 20px 20px 0;
}
Я бы рекомендовал CSS Flexbox для этого:
ul {
display: flex;
flex-wrap: wrap
}
Вы увидите, что по мере уменьшения размера экрана элементы li переносятся на следующую строку.
Пример: https://jsfiddle.net/rmfx4qdw/
Вот пример, который я сделал как для плавающих, так и для фиксированных адаптивных списков (играть с шириной окна, чтобы увидеть разницу между ними) 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, они будут падать снизу от последнего к первому.
Профессиональный совет, если вы решите реализовать этот метод, убедитесь, что ни один из li не превышает минимальное окно, иначе они переполнятся. Например, если один из ваших li имеет ширину 450 px, то для всех окон шириной меньше 450 px это li будет overflow
Профессиональный совет 2 При использовании display: inline-block по умолчанию добавляется пробел между элементами, от которого можно избавиться, добавив к родительскому элементу font-size: 0
Скорее всего, это потому, что они
display: inline. Ставьтеli { display: inline-block }, но код покажите, пожалуйста, точно узнать невозможно, если вы просто добавляете скриншот и никаких HTML и CSS