Я пытаюсь иметь элементы li в одной строке. Мне это удалось, но по какой-то причине каждый элемент li разбивается на 2 строки. Я не знаю, почему. Есть ли способ исправить это?
HTML:
<section class="carousel price_carousel"> <!--Price section -->
<div class="wrapper" >
<ul class="list">
<li>TEXT TEXT </li>
<li>TEXT TEXT TEXT TEXT TEXT</li>
<li>TEXT TEXT TEXT TEXT TEXT</li>
</ul>
</div>
JSfiddle (с CSS): http://jsfiddle.net/bgeswkr4/
Удалите поплавки и измените атрибуты inline-block
на li
элементы. Как это:
.wrapper {
text-align: center;
}
.price_carousel .list {
padding-left: 1em;
display:block;
margin: 0;
}
.price_carousel .list li {
display: inline-block;
vertical-align: middle;
list-style-position: inside;
list-style-type: disc;
margin-right: 1em;
text-align: left;
white-space: nowrap;
}
Я добавил white-space: nowrap;
объявление элементам li
чтобы они никогда не ломались внутри, но вы можете снять его (я обычно беру его сам, но зависит от вас).
Но если вы хотите, чтобы UL
никогда не ломался (поэтому LI
всегда будет в одной строке), просто добавьте это white-space: nowrap;
декларация в UL
ИЗМЕНИТЬ, ЧТОБЫ ВКЛЮЧАТЬ БУЛЛЕТЫ: элементы inline-block
не отображают list-style-type
, поэтому варианты включения маркеров в ваш случай следующие:
a) использовать float: left;
.price_carousel .list li {
float:left;
vertical-align: middle;
list-style-position: outside;
list-style-type: disc;
margin-right: 1em;
text-align: left;
white-space: nowrap;
}
б) использовать фоновое изображение в качестве пули
.price_carousel .list li {
display:inline-block;
vertical-align: middle;
list-style-position: outside;
list-style-type: disc;
margin-right: 1em;
text-align: left;
white-space: nowrap; padding-left:30px; background:url('http://upload.wikimedia.org/wikipedia/commons/e/ef/Bullet_go.png') no-repeat center left;
}
c) включить диапазон в разметку HTML
HTML выглядит так:
<ul class="list">
<li><span class="bull">TEXT TEXT</span>
</li>
<li><span class="bull">TEXT TEXT</span>
</li>
<li><span class="bull">TEXT TEXT</span>
</li>
</ul>
и CSS:
.price_carousel .list li {
display:inline-block;
vertical-align: middle;
list-style-position: outside;
list-style-type: disc;
margin-right: 1em;
text-align: left;
white-space: nowrap;
padding-left:30px;
}
.bull {
display:list-item
}
В Chrome он отображается правильно, и все они отображаются на одной строке, если вы делаете окно больше.. из-за длины строки и того факта, что вы добавили левый край, нет места для них в той же строке, если вы не сделаете окно достаточно большим, чтобы они это сделали.
Теперь я вижу, что в Firefox он разбивается на две строки.. и мое первое предположение связано с этим стилем, что добавление:
list-style-position: inside;
Если вы удалите это, оно будет корректно отображаться.
Похоже, что Firefox может иметь некоторые проблемы со строкой в стиле списка. Здесь проблема, которую я нашел в Bugzilla с аналогичной проблемой: https://bugzilla.mozilla.org/show_bug.cgi?id=36854
white-space: nowrap
? jsfiddle.net/gu2em2ex (предполагается, что ониinline
элементы ..).