У меня три <li>
. К сожалению, я не могу дать им каждое собственное имя класса (иначе это было бы проще).
Мне нужно, чтобы один выровнялся влево, один - в центр, а один - вправо. Есть ли способ сделать это в CSS, который может учитывать переменный размер <ul>
?
Если посмотреть на другие вопросы, есть возможность использовать li:last-child
. Это все равно будет проблемой для тех, кто использует большинство IE, поскольку поддержка существует только в IE9.
Просто используйте ширину 33%
и float:left
на ваших li
.
Установите свою ul
в любую нужную width
.
РЕДАКТИРОВАТЬ:
Если вам абсолютно необходимо их выровнять, вы всегда можете использовать inline
стили поверх описанного выше метода.
<ul class="test">
<li style="text-align:left">Item One</li>
<li style="text-align:center">Item Two</li>
<li style="text-align:right">Item Three</li>
</ul>
<li>
был выровнен по левому краю, а справа - по правому. Увеличивая ширину, я должен сделать выбор относительно того, где мой текст выравнивается
edited
разделе решает, что ... не так ли?
[edit] К тому времени, когда я отправляю сообщение, базовый поплавок был достаточно хорош, il оставить ответ для любопытных людей :) [/edit]
есть 2 варианта, о которых я думаю без использования float, а также display: table; (на самом деле доступно 4 варианта):
1) дисплей: flex;
2) text-align: justify; и некоторые настройки:
http://codepen.io/gc-nomade/pen/zcGmC
<ul class="flex">
<li>flex me</li>
<li>flex me</li>
<li>flex me</li>
</ul>
<ul class="justify">
<li>Justify me</li>
<li>Justify me</li>
<li>Justify me</li>
</ul>
.flex {
display:flex;
justify-content:space-between;
}
.justify {
text-align:justify;
}
.justify:after {
content:'';
display:inline-block;
width:100%;
}
.justify li {
display:inline-block;
}
display:flex
. Я должен исследовать это. Новичок в CSS3?
display: inline-block
. Но вам нужна ширина для каждого элемента li.