Как выровнять последние 3 пункта меню справа - Главное меню WordPress
Я хочу стилизовать горизонтальное главное меню WordPress так, чтобы первые 3 пункта были выровнены по левому краю, а последние 3 пункта - по правому.
Это создаст видимость двух меню (с элементами входа и т.д. справа), но позволит легко изменить стиль для создания адаптивного меню с последними тремя пунктами внизу.
МЕНЮ:
<UL>
<li>1a</li><li>2a</li><li>3a</li> <-слева справа-> <li>4a</li><li>5a</li><li>6a</li>
</UL>
Использование float: left и float: right приводит к изменению порядка последних 3 элементов, но мне нужно, чтобы они оставались в исходном порядке.
Я хотел бы найти решение, которое не требует создания отдельного меню или изменения порядка пунктов меню для восстановления правильного порядка при использовании float:right.
Я пробовал различные комбинации display:inline-block и text-align:left/right, но безуспешно.
РЕДАКТИРОВАНИЕ: Я хотел бы сделать это без добавления разметки в само меню. (Если только ответ также не показывает, как добавить разметку в горизонтальное меню WordPress.)

Есть более простой способ без изменения разметки и с минимумом CSS. Живая демонстрация/пример здесь, код ниже:
<ul>
<li>1a</li><li>2a</li><li>3a</li><li>4a</li><li>5a</li><li>6a</li>
</ul>
ul {
list-style: none;
margin: 0;
padding: 0;
text-align: right;
}
li {
float: left;
}
li:nth-last-child(1), li:nth-last-child(2), li:nth-last-child(3) {
float: none;
display: inline-block;
}

Вам нужно обернуть две группы элементов (выровненных по левому и правому краю) в два контейнера. Затем установите для этих контейнеров свойство float
со значением left
и right
соответственно.
<UL>
<div class="pull-left"><li>1a</li><li>2a</li><li>3a</li></div>
<div class="pull-right"><li>4a</li><li>5a</li><li>6a</li></div>
</UL>
Убедитесь, что внутренние элементы имеют свойство display
со значением inline-block
. Также рекомендуется установить свойство overflow
для элемента ul
в значение 'hidden', чтобы он расширялся и содержал все дочерние элементы, так как оба контейнера являются плавающими.
.pull-left { float: left; }
.pull-right { float: right; }
.pull-left li, .pull-right li { display: inline-block; }
ul { overflow: hidden; }
Установка overflow: hidden
для всех элементов ul
в вашем проекте может быть не самой лучшей идеей, поэтому рекомендуется найти родительский селектор для вашего ul
и добавить его перед селектором ul
. (например: .some-container-class-here ul { overflow: hidden;}
)
