#html #css
#HTML #css
Вопрос:
<ul style="width:100%;height:50px;">
<li>foo</li>
<li>bar foo</li>
<li>bar bar bar bar bar barbarbar</li>
</ul>
Я хочу, чтобы мой li был выровнен по горизонтали, чтобы заполнить ul по ширине, чтобы их текст был минимальной ширины, и если они слишком велики по горизонтали, чтобы контейнер переполнялся (не переходил в строку).
Есть решение?
Комментарии:
1. В этих случаях вам следует нанять разработчика, как будто никто не должен работать «бесплатно». Предоставьте нам больше кода или, по крайней мере, JSFiddle, чтобы получить помощь.
Ответ №1:
Вам нужно просто добавить немного CSS, как показано ниже
ul{background:#dddddd;}
ul li{
float:left;
list-style:square inside;
padding-right:20px;
line-height:50px;
}
Комментарии:
1. работает помимо того факта, что чрезмерно длинные <li> переходят в строку вместо того, чтобы оставаться в одной строке и выходить за пределы ul (и окна)
Ответ №2:
вы можете использовать flexbox
css
ul {
display: flex;
line-height: 50px;
border: 1px solid red;
flex-wrap: nowrap;
flex-direction: row;
/*justify-content: center; if you want to justify flex elements*/
}
li {
min-width: 100px;
white-space: nowrap;
}
body {
margin:0;
padding: 0;
}
РЕДАКТИРОВАТЬ: min-width
для содержимого li
New Demo
Подробнее о flexbox
Комментарии:
1. вы устанавливаете минимальную ширину: 100 пикселей, я хочу, чтобы минимальная ширина была содержимым каждого li
2. Я добавил новую демонстрацию.
3. Лучше, но теперь давайте перейдем друг к другу, когда они слишком велики для ul, в то время как я хочу, чтобы они оставались рядом и переполнялись справа от ul, возможно, это можно сделать только в JS
4. для этого вам нужно указать ширину
li