Горизонтальное резиновое меню на всю ширино (justify)
24.01.2019
6528
В закладкиВ отличии предыдущего меню, где есть отступы у каждого элемента, часто возникает задача сделать резиновое меню без них. Пункты меню должно идти с одинаковыми интервалами и без отступов по бокам.
Сделать его можно с помощью text-align: justify и псевдо-свойств :before и :after.
1
<div> <div> <ul> <li><a href="#">Каталог</a></li> <li><a href="#">Акции</a></li> <li><a href="#">Отзывы</a></li> <li><a href="#">Контакты</a></li> </ul> </div> </div>
HTML
.wrp {
width: 600px;
margin: 0 auto
}
.menu {
background: #b92525;
padding: 20px 0 0 0;
height: 40px;
}
.
menu ul {
text-align: justify;
margin: 0;
padding: 0;
}
.menu ul:before{
content: '';
display: block;
width: 100%;
height: 0;
}
.menu ul:after {
content: '';
width: 100%;
height: 0;
visibility: hidden;
overflow: hidden;
display: inline-block;
}
.menu li {
display: inline-block;
margin: 0;
padding: 0;
list-style: none;
}
.menu a {
font-size: 16px;
color: #fff;
}CSS
2
Добавление разделителей между пунктами меню.
<div> <div> <ul> <li><a href="#">Каталог</a></li> <li><span></span></li> <li><a href="#">Акции</a></li> <li><span></span></li> <li><a href="#">Отзывы</a></li> <li><span></span></li> <li><a href="#">Контакты</a></li> </ul> </div> </div>
HTML
.wrp { width: 600px; margin: 0 auto } .menu { background: #b92525; padding: 20px 0 0 0; height: 40px; } .menu ul { text-align: justify; margin: 0; padding: 0; } .menu ul:before{ content: ''; display: block; width: 100%; height: 0; } .menu ul:after { content: ''; width: 100%; height: 0; visibility: hidden; overflow: hidden; display: inline-block; } .menu li { display: inline-block; margin: 0; padding: 0; list-style: none; } .menu a { font-size: 16px; color: #fff; } .menu span { display: inline-block; width: 8px; height: 8px; background: url(/img/menu-marker.png) 0 0 no-repeat; }
CSS
24.01.2019, обновлено 31.10.2019
6528
#CSS #HTML #Меню
В закладкиДругие публикации
Одна рамка между блоками
Несколько вариантов как схлопнуть (объединить) границы у рядом стоящих блоков.
Фон под текстом
С фоном у текста есть проблема – у элемента с display: inline при переносах текста не работают отступы (padding) по бокам. Исправить это можно следующими способами.
Contenteditable – текстовый редактор
Если добавить атрибут contenteditable к элементу, его содержимое становится доступно для редактирования пользователю, а…
Генерация счета на оплату PDF PHP
С помощью расширения dompdf можно легко сформировать PDF файл. По сути, dompdf — это конвертер HTML в PDF который…
Описание мета-тегов
В статье представлены все самые встречающеюся мета-теги с примерами и пояснениями их использования.
flexbox — Верстка горизонтального меню на CSS flex
Задать вопрос
Вопрос задан
Изменён 2 года 6 месяцев назад
Просмотрен 2k раз
Делаю горизонтальное меню на css.
Нужно добиться эффекта, чтобы пункты меню (элементы li в которых a-ссылки) занимали всё место в блоке меню по горизонтали. Иными словами чтоб когда наводишь мышкой, ховер загорался от края до края, а не только на ширину слова в пункте меню.
Для наглядности прикладываю 2 скрина. Первый как надо сделать, второй — как получается сейчас
ul {
list-style: none;
}
nav ul {
display: flex;
flex-direction: row;
justify-content: space-around;
height: 50px;
background-color: black;
}
nav li {
display: flex;
margin-right: 10px;
}
a {
text-decoration: none;
}
nav a {
display: flex;
justify-content: center;
align-items: center;
text-transform: uppercase;
color: white;
font-size: 14px;
padding: 0 10px;
}
nav a:hover {
background-color: #1A3039;
}<nav>
<ul>
<li><a href="">Home</a></li>
<li><a href="">About</a></li>
<li><a href="">Gallery</a></li>
<li><a href="">Help</a></li>
<li><a href="">Contact</a></li>
</ul>
</nav>Буду очень благодарен за помощь.
- css
- flexbox
- menu
Для тега li добавил flex: 1;, для a — width: 100%.
ul {
list-style: none;
margin: 0;
padding: 0;
}
nav ul {
display: flex;
flex-direction: row;
justify-content: space-around;
height: 50px;
background-color: black;
}
nav li {
flex: 1;
display: flex;
}
a {
text-decoration: none;
}
nav a {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
text-transform: uppercase;
color: white;
font-size: 14px;
padding: 0 10px;
}
nav a:hover {
background-color: #1A3039;
}<nav>
<ul>
<li><a href="">Home</a></li>
<li><a href="">About</a></li>
<li><a href="">Gallery</a></li>
<li><a href="">Help</a></li>
<li><a href="">Contact</a></li>
</ul>
</nav>4
ul{
list-style-type: none;
padding-left: 0;
background-color: #000;
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
text-align: center;
}
ul li{
padding: 10px;
width: 20%;
max-width: 20%;
}
ul a{
text-decoration: none;
color: #fff;
}
ul li:hover{
background-color: #1A3039;
}<nav>
<ul>
<li><a href="">Home</a></li>
<li><a href="">About</a></li>
<li><a href="">Gallery</a></li>
<li><a href="">Help</a></li>
<li><a href="">Contact</a></li>
</ul>
</nav>2
Зарегистрируйтесь или войдите
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
горизонтальных списков CSS | UnusedCSS
Списки HTML, представленные тегом с дочерними тегами
, по умолчанию являются вертикальными и маркированными.
Для пользовательского стиля нам нужно применить специальные свойства CSS.
Например, давайте построим горизонтальный список.
Начнем с простого ненумерованного списка.
<ул>
Так будет выглядеть список
- Дом
- Проекты
- О нас
- Контакт
Допустим, мы хотим придать приведенному выше списку стиль, который выглядит примерно так:
- Дом
- Проекты
- О нас
- Контакт
Итак, как мы можем этого добиться? Давайте рассмотрим процесс шаг за шагом.
Наше первое наблюдение заключается в том, что в конечном результате нам не нужен стиль пули. Стиль элементов списка управляется свойством list-style. Давайте удалим их, установив значение none.
<ул>
ul.horizontal-список {
стиль списка: нет;
} - Дом
- Проекты
- О нас
- Контакт
Пули закончились, но наш список по-прежнему вертикальный.
Это потому, что элементы списка по умолчанию являются элементами с блоком 9.0004 и, следовательно, занимают все пространство по горизонтали. Давайте настроим их на отображение встроенных блоков .
ul.horizontal-list li {
отображение: встроенный блок;
} - Дом
- Проекты
- О нас
- Контакт
Итак, у нас есть горизонтальный список.
Нам нужно добавить вертикальную черту справа от каждого элемента списка, но не от последнего.
ul.horizontal-list li:not(:last-child) {
граница справа: 1 пиксель сплошной черный;
} - Дом
- Проекты
- О нас
- Контакт
Давайте добавим отступы к каждому элементу списка.
ul.horizontal-list li {
// остальные стили сверху
заполнение: 0 0.5rem;
}
- Дом
- Проекты
- О нас
- Контакт
Длина текста в каждом элементе списка различается.
Чтобы иметь единый внешний вид, мы зададим постоянную минимальную ширину для всех элементов и выровняем текст по центру.
ul.horizontal-list li {
// остальные стили сверху
мин-ширина: 12рем;
выравнивание текста: по центру;
}
- Дом
- Проекты
- О нас
- Контакт
Теперь у вас есть готовый список. Все, что нам нужно сделать, это установить цвет фона и текста в соответствии с темой вашего сайта/приложения.
- Дом
- Проекты
- О нас
- Контакт
Стили списка по умолчанию
<ул>
Горизонтальный список
<ул> body { семейство шрифтов: без засечек; }
ли: наведите {
оформление текста: подчеркивание;
}
ul.horizontal-список {
стиль списка: нет;
цвет фона: #48abe0;
белый цвет;
отображение: встроенный блок;
набивка: 1рем 2рем;
поле-верх: 1re;
}
ul.
horizontal-list li {
отображение: встроенный блок;
заполнение: 0 0.5rem;
мин-ширина: 7rem;
выравнивание текста: по центру;
курсор: указатель;
}
ul.horizontal-list li: not (: last-child) {
граница справа: 1 пиксель сплошной белый;
}
Варианты использования
Горизонтальные списки — один из наиболее часто используемых объектов в веб-дизайне. Возможно, вы общаетесь с ними ежедневно. Чаще всего их можно найти в навигационных панелях, заголовках таблиц, списках вкладок и т. д.
Давайте рассмотрим другие реализации.
Вот аналогичный список
См. Pen Simple Horizontal List (CSS) Джереми Кэриса (@jeremycaris) на CodePen.
Группа горизонтального списка
См. группу горизонтального списка Pen с Bootstrap 3 от Lazy Jones (@lazy) на CodePen.
Заголовок таблицы в стиле Excel
См.
меню горизонтального списка Pen css от CSS4HTML (@CSS4HTML) на CodePen.
Реализация, подобная панели навигации
См. Горизонтальный список пера — float: оставил Джейсон Стюарт (@jastew) на CodePen.
Заключение
Хотя неупорядоченные списки являются вертикальными стандартными, веб-разработчикам регулярно приходится реализовывать горизонтальные списки. Внедрение горизонтальных списков благодаря гибкости CSS не является сложной задачей. Установив отображать элементов списка до встроенных , мы можем легко получить горизонтально расположенную группу элементов списка.
Поделиться в Твиттере · Поделиться на Facebook
- ← Полукруг CSS
- Руководство по переносу текста в CSS →
Горизонтальное меню CSS с примерами кода
Горизонтальное меню CSS с примерами кода
В этом уроке мы попробуем решить головоломку Css Menu Horizontal с помощью компьютерного языка.
Следующий фрагмент кода продемонстрирует этот момент.
ли {
дисплей: встроенный;
}
С помощью многочисленных иллюстраций мы продемонстрировали, как использовать код, написанный для решения проблемы Css Menu Horizontal.
Как сделать горизонтальное меню в CSS?
Вы можете изменить вышеуказанное вертикальное меню на горизонтальное, просто добавив имя класса «чистое меню-горизонтальное» в разделе в начале. 22 февраля 2021 г.
Что такое горизонтальное меню CSS?
Чистый CSS помогает нам легко реализовать такие меню с помощью класса pure-menu. Класс Pure-menu по умолчанию создает вертикальное меню, которое мы можем просто преобразовать в горизонтальное, добавив класс pure-menu-horizontal. Одно из наиболее распространенных применений горизонтального меню — панели навигации (navbars).01-Feb-2022
Как изменить вертикальное меню на горизонтальное?
Преобразование вертикального меню в горизонтальное
- Удалите свойство display:block из правила #nav.
Почему? Чтобы он мог вернуться в свое встроенное положение по умолчанию. - Создайте новое правило (#nav li {float:left;}). Почему?
- Добавить float:left; свойство к основному правилу ul. Почему?
Как изменить вертикальный список на горизонтальный в CSS?
Использование свойства Position: Используйте свойство position в абсолютном значении, чтобы установить выравнивание по левому и правому краю. Вывод: Использование свойства выравнивания текста: Используйте свойство выравнивания текста, чтобы установить горизонтальное выравнивание элемента. Свойство text-align может быть установлено влево, вправо или по центру.14 февраля 2019 г.
Как отобразить список горизонтально в HTML?
Если вы хотите сделать этот навигационный неупорядоченный список горизонтальным, у вас есть два основных варианта: Сделать элементы списка встроенными вместо блока по умолчанию. .li { дисплей: встроенный; } Это не приведет к разрывам после элементов списка, и они будут выстраиваться горизонтально, насколько это возможно.
06 декабря 2007 г.
Какой класс используется для создания горизонтального меню?
Полный список всех классов начальной загрузки
Что такое горизонтальное меню?
Что такое горизонтальная навигация? Горизонтальная панель навигации сайта представляет собой список ссылок в верхней части каждой страницы. Он может быть выше, ниже, слева или справа от заголовка или логотипа, но всегда размещается перед основным содержимым страницы и одинаков на каждой странице.13 июля 2020 г.
Как создать горизонтальное меню и подменю в HTML с помощью CSS?
Используйте любой элемент, чтобы открыть поднавигационное/выпадающее меню, например. элемент


wrp {
width: 600px;
margin: 0 auto
}
.menu {
background: #b92525;
padding: 20px 0 0 0;
height: 40px;
}
.menu ul {
text-align: justify;
margin: 0;
padding: 0;
}
.menu ul:before{
content: '';
display: block;
width: 100%;
height: 0;
}
.menu ul:after {
content: '';
width: 100%;
height: 0;
visibility: hidden;
overflow: hidden;
display: inline-block;
}
.menu li {
display: inline-block;
margin: 0;
padding: 0;
list-style: none;
}
.menu a {
font-size: 16px;
color: #fff;
}
.menu span {
display: inline-block;
width: 8px;
height: 8px;
background: url(/img/menu-marker.png) 0 0 no-repeat;
}