CSS
Макет встроенного блока
Поиск…
Обоснованная панель навигации
В горизонтально-ориентированной навигационной панели (меню) есть несколько элементов, которые должны быть оправданы. Первый (левый) элемент не имеет левого поля в контейнере, последний (правый) элемент не имеет правого края в контейнере. Расстояние между элементами равно, независимо от ширины отдельного элемента.
HTML
<nav>
<ul>
<li>abc</li>
<li>abcdefghijkl</li>
<li>abcdef</li>
</ul>
</nav>
CSS
nav {
width: 100%;
line-height: 1.4em;
}
ul {
list-style: none;
display: block;
width: 100%;
margin: 0;
padding: 0;
text-align: justify;
margin-bottom: -1.4em;
}
ul:after {
content: "";
display: inline-block;
width: 100%;
}
li {
display: inline-block;
}
Заметки
-
nav
,ul
иli
были выбраны для их семантического значения «список элементов навигации (меню)». Разумеется, можно использовать и другие теги. - Псевдоэлемент
:after
псевдоэлемента вызывает дополнительную «линию» вul
и, следовательно, дополнительную, пустую высоту этого блока, нажатие другого содержимого вниз. Это решается отрицательнымmargin-bottom
, которое должно иметь ту же величину, что иline-height
(но отрицательная). - Если страница становится слишком узкой для всех элементов, которые подходят, элементы будут разбиты на новую строку (начиная с правой) и будут оправданы в этой строке. Общая высота меню будет расти по мере необходимости.
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow