Я создал горизонтальную панель навигации с использованием стилей, но я столкнулся с серьезной проблемой... Поскольку <li>
является блочным элементом, я не могу выровнять его с помощью text-align:right
, что не позволяет мне выровнять его должным образом. Я попытался использовать display:inline;
синтаксис элемента списка, но это тоже не имеет никакого значения (что действительно имеет смысл).
Мой вопрос заключается в том, есть ли способ выравнивания горизонтального <li>
, без использования float:right;
? Я хочу, чтобы он соответствовал текущему формату списка (который я настроил в соответствии с родительским div), а использование float - не очень хороший или безопасный метод. Вот скриншот того, что я получил до сих пор (макет немного испорчен из-за недавнего добавления изображения). Как вы можете видеть, мне удалось правильно разместить "Моя страница" и "Выход", но как только я добавлю что-то более "сложное" (например, "+", которое теперь помещено в обычный список), он становится испорченным... Я действительно не понимаю, как другие сайты справляются с этим.
Вы должны определить text-align: right
для содержащего элемента
HTML:
<ul class="nav">
<li class="menu">1</li>
<li class="menu">2</li>
<li class="menu">3</li>
<li class="menu">4</li>
<li class="menu">5</li>
</ul>
CSS:
.nav {
text-align: right;
}
.menu {
display: inline;
}
Если хотите, вы можете разделить меню на левую и правую части. Добавьте или удалите заполнение и маржу при необходимости.
HTML:
<ul class="nav left-nav">
<li class="menu">1</li>
<li class="menu">2</li>
<li class="menu">3</li>
</ul>
<ul class="nav right-nav">
<li class="menu">4</li>
<li class="menu">5</li>
</ul>
CSS:
.nav {
margin: 0;
padding: 0;
}
.left-nav {
text-align: left;
}
.right-nav {
text-align: right;
}
.menu {
display: inline;
}
span
и вещи тоже, но это было неэффективно)
Здесь вы идете, я думаю, что это то, что вы ищете:
jsfiddle.net/Sdw5h/
float:right
, чего я действительно не хочу в этом контексте. РЕДАКТИРОВАТЬ: Подожди, только что увидел что-то интересное ... Я посмотрю дальше в ваш ответ.
<nav>
... Мне кажется, что-то новое для меня, что может означать проблемы совместимости с более старыми браузерами). В любом случае, спасибо.
block
? потому чтоdisplay:list-item;
li
display:list-item;
по умолчанию. => w3.org/TR/html-markup/li.html#li-display