Html вертикальное меню: Вертикальное меню на CSS
Как создать вертикальное меню для сайта на CSS
В данном уроке мы рассмотрим процесс создания весьма интересного концепта меню, мы создадим его вертикальным еще и минималистическим. Данная навигация будет содержать подпункты, то есть мы создадим иерархию выпадающих вкладок для навигации. Кроме этого будет установлена анимация при выборе пункта и добавлены иконки, которые будут существенно украшать нашу навигацию. Мы будем развивать данную тенденцию в сайтостроении и продолжать разрабатывать различные варианты данной навигации.
Преимущество данной навигации состоит в его компактности, кроме этого меню является полностью адаптивным, что играет важную роль в современном вопросе сайтостроения. Итак, давайте приступим.
Много различным бесплатных шаблонов вы можете найти на сайте наших партнеров, также имеются и премиум шаблоны с круглосуточной техподдержкой и помощью в настройке:
Шаг 1. HTML
У нас будет контейнер в котором будет содержаться вся иерархия меню, также мы заключим в классы подпункты:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | <nav> <ul> <li> <a href=»»> <i></i> <strong>Главная</strong> <small>вернуться домой</small> </a> </li> <li> <a href=»»> <i></i> <strong>О нас</strong> <small>краткая информация</small> </a> </li> <li> <a href=»»> <i></i> <strong>Избранное</strong> <small>любимые сайты</small> </a> </li> <li> <a href=»»> <i></i> <strong>Новости</strong> <small>только самые интересные</small> </a> </li> |
Создание меню html / css
Основы верстки
Чаще всего меню создается на основе не упорядоченных списков ul
. В каждый пункт li
вкладывается гиперссылка a
.
Можно создавать меню и на основе блоков div
, таблиц table
или списков определений dl
.
Но традиционной является конструкция ul
.
Код простейшего меню будет выглядеть так:
<ul> <li><a href="#/">пункт 1</a></li> <li><a href="#/">пункт 2</a></li> <li><a href="#/">пункт 3</a></li> <li><a href="#/">пункт 4</a></li> <li><a href="#/">пункт 5</a></li> </ul>
×
Примечание
В процессе разработки удобно указывать адрес гиперссылки — #/
. Во-первых, она никуда не ведет, а во-вторых — не происходит перехода к началу страницы.
Целью гиперссылки будет соответствующая страница вашего сайта или внешняя ссылка. Адрес внутренней страницы может быть как абсолютным, так и относительным. Внешней ссылки — только абсолютный. (Если забыли — смотрите Абсобютные и относительные ссылки).
Хорошим тоном считается все стили сайта оформлять одним сжатым файлом. Но на время разработки гораздо удобнее иметь отдельные файлы для определенных элементов страницы, в данном случае для навигационного меню.
Поэтому предварительно нужно создать файл, например my-menu.css, и подключить его.
<!-- Подключение таблицы стилей --> <!DOCTYPE html> <html> <head> ... <title>Создание меню</title> <link rel="stylesheet" href="css/MAIN.css" type="text/css" /> <link rel="stylesheet" href="css/my-menu.css" type="text/css" /> ... </head> <body> ... </body> </html>
Позже код можно будет перенести в общий файл, а этот удалить (или отключить).
Как прописываются стилевые правила для меню
Необходимо создать классы, и прописывать стили уже для них. Потому что если задавать стили непосредственно для тегов, например:
/* Не желательно! */ ul li a {color: #f00;}
то это правило будет распространяться и на все ссылки, включенные в списки за пределами меню! Кроме того, на сайте может быть несколько меню различного оформления.
Вторая причина, по которой желательно работать с классами, а не с тегами напрямую — возможность разбить стили по группам. За каждую тематическую группу стилей будет отвечать свой класс.
Например, можно создать класс .menu_color
, который будет отвечать за цветовое оформление. В дальнейшем это значительно упростит работу по изменению цветового оформления меню.
Каким тегам нужно присваивать классы
Хороший вопрос. Для начала, неплохо создать дополнительный контейнер-обертку и присвоить класс ему.
Да, это дополнительная разметка, но оформлять меню будет гораздо удобнее. Кроме того, если в качестве контейнера использовать не div
, а nav
, то верстка будет более семантической (осмысленной) и удобной для поисковых систем (ПС), что является несомненным плюсом. Второй класс присваиваем тегу ul
.
<nav> <ul> <li><a href="#/">пункт 1</a></li> <li><a href="#/">пункт 2</a></li> <li><a href="#/">пункт 3</a></li> <li><a href="#/">пункт 4</a></li> <li><a href="#/">пункт 5</a></li> </ul> </nav>
Почему именно так?
Присвоение класса .menu_color
тегу nav
дает больше возможности для оформления, чем присовение его тегу ul
, а класс .my_menu
отвечает только за разметку меню и никакого отношения к содержащему контейнеру иметь не должен.
При этом всегда надо держать в уме, что навигационный блок находится в определенном внешнем блоке сайта и его местоположение и некоторые свойства, например связанные с внешними отступами или направлением выпадения подменю (подробнее об этом в материале «Выпадающее меню») зависят от внешних классов глобальной разметки сайта.
Какие имена должны быть у классов
Осмысленные. В идеале, любое имя класса должно давать представление об объекте и назначении. В приведенном выше примере используются классы nav.menu_color
и ul.my_menu
.
Первый отвечает за цветовое оформление всех элементов и, в тоже время, дает понять что относится к меню.
Второй идентифицирует список как собственно меню.
×
Внимание!
Старайтесь выбирать имена для классов не только внятные, но и уникальные. В противном случае они могут конфликтовать с уже существующими классами.
Имеено по-этому я выбрал класс .my_menu
, так как на сайте уже есть класс .menu
со своими стилями.
Это то, чем никогда не озадачиваются начинающие верстальщики, а опытные часто пренебрегают … А потом, когда нужно внести изменения в уже созданное меню чтобы адаптировать его для другого сайта, или вывести в другой позиции — долго и нудно переделывают.
На самом деле, все очень просто. Изначально, на этапе создания нужно группировать стили тематически и включать их в соответствующие классы.
Например, за цветовое оформление у нас отвечает класс .menu_color
/* === Группа цветового оформления === */ /* Цвет фона менд */ .menu_color { background: gray; } /* Оформление пункта меню */ .menu_color > ul > li > a { background: transparent; color: #f5f5f5; } ... /* === Группа разметки основного меню === */ /* Сброс и установка стилей по умолчанию */ .my_menu { list-style: none; margin: 0; padding: 0; } /* Разметка для пункта меню */ .my_menu li a { display: block; margin: 0; padding: 12px 20px; text-decoration: none; }
Т.е. все стили, определяющие цветовое оформление того или иного элемента меню, должны быть привязаны к классу .menu_color
, а стили отвечающие за разметку — соответственно .my_menu
.
При необходимости, для тега nav
также можно добавить дополнительный класс, чтобы не залезать на территорию «цветового оформления» . ..
Обычно выводится в одной из боковых колонок сайта. Чаще выполняет функции дополнительной навигации, реже — главное меню сайта.
Простое вертикальное меню
Исходный html-код меню будет выглядеть так:
<nav> <ul> <li><a href="#/">пункт 1</a></li> <li><a href="#/">пунтк 2</a></li> <li><a href="#/">пункт 3</a></li> <li><a href="#/">пункт 4</a></li> <li><a href="#/">пункт 5</a></li> </ul> </nav>
Кроме основных классов, рассмотренных в предыдущем материале, добавлен класс li.active
для активного пункта (ссылка на текущую страницу).
Сброс и установка стилей по умолчанию
Файл my-menu.css
/* Убираем маркеры и отступы */ .my_menu { list-style:none; margin:0; padding:0; } .my_menu li { margin:0; padding:0; position:relative; } /* Общие правила для пунктов меню */ . my_menu li a { display:block; margin:0; padding:12px 20px; text-decoration: none; } /*Наведение на активный пункт меню - курсор обычный */ .my_menu li.active > a:hover { cursor: default; }
Цветовое оформление
×
Примечание
На практике не обязательно применять все стили, достаточно лишь некоторые. Например при наведении иногда достаточно изменение только цвета ссылки или добавить подчеркивание.
/* === Цветовое оформление menu_color === */ .menu_color { background:#555; } /* Оформление пункта */ .menu_color > ul > li > a { color:#999; background: rgba(0, 0, 0, 0); } /* Подсветка пункта при наведении */ .menu_color > ul > li > a:hover { color: #bbb; background: rgba(0, 0, 0, 0.1); } /* Активный пункт */ .menu_color > ul > li.active > a, .menu_color > ul > li.active > a:hover { color:#fff; background:rgba(0, 0, 0, 0.4); }
Пояснения:
- Если возникнет необходимость к определенным пунктам меню добавить подпункты, т. е. сделать меню многоуровневым, то конструкция
.menu_color > ul > li > a
позволит ограничить применение стилей только к пунктам меню первого уровня. Для подменю можно будет прописать другие стили оформления. - Использование прозрачности при задании цвета фона —
background: rgba(0, 0, 0, 0.1)
. Это универсальное режение для любого темного бэкграунда. Если вы решите изменить цвет фона меню, фон активного пункта и подсветка пунктов при наведении изменятся автоматически. Впрочем, ничто не мешает вам задать понравившиеся цвета явно.
×
Замечание
Цвет фона меню задавать не обязательно, если он наследуется от родительского блока.
Разделители пунктов
/* Разделитель пунктов меню */ .menu_color > ul > li + li > a { border-top: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.15); }
Повторяем тот же трюк с использованием rgba. Цвета для верхней границы и тени заданы полупрозрачными — черный 15% прозрачности и белый 10% соответственно.
Это универсальное режение для любого темного бэкграунда. Если вы решите изменить цвет фона, то цвет рамки и тени изменится автоматически!
До этого момента рассматривалось простое одноуровневое меню. Как показывает практика, очень часто, через какое-то время возникает необходимость к одному или нескольким основным пунктам добавить подпункты. Поэтому:
Изначально любое меню нужно создавать как многоуровневое!
В последние годы реально-многоуровневые меню уходят в прошлое. Двух уровней, обычно, вполне достаточно, остальные — оформляются отдельным дополнительным меню.
HTML-код 2-х уровневого меню:
<nav> <ul> <li><a href="#/">пункт 1</a></li> <li><a href="#/">родительский пункт 2</a> <ul> <li><a href="#/">дочерний подпункт 1</a></li> <li><a href="#/">дочерний подпункт 2</a></li> </ul> </li> <li><a href="#/">пункт 3</a></li> <li><a href="#/">пункт 4</a></li> <li><a href="#/">пункт 5</a></li> </ul> </nav>
Добавлены классы li. parent
— родительский тег, содержащий подменю, и ul.sub-menu
— вложенный список выпадающего меню.
Цветовое оформление
/* Оформление sub-menu */ .menu_color .sub-menu { background: #f5f5f5; border: 1px solid #f5f5f5; } /* Офррмление подпунктов */ .menu_color .sub-menu li a{ color: #555; background: rgba(0, 0, 0, 0); } /* Офррмление подпунктов при наведении */ .menu_color .sub-menu li a:hover{ color: #fff; background: #555; } /* Разделитель для пунктов sub-menu */ .menu_color .sub-menu > li + li > a { border-top: 1px solid #fff; box-shadow: 0 -1px 0 #ddd; padding-left: 40px /* Добавляем отступ для подпунктов */ }
Чтобы не усложнять код, размеры и отступы оставлены те же, что и в основном меню.
Позиционирование и скрытие
Позиционирование осуществляется относительно родительского li.parent
. (Именно для этого при сбросе и установке для него было задано position: relative;
)
/*Общие*/ . my_menu .sub-menu { display: none; position: absolute; top: 0; min-width: 200px; z-index: 9999; }
Вывод
В зависимости от расположения основного меню (левая/правая боковая колонка), подменю может выпадать как вправо, так и влево. Поэтому для определения стилевых правил используем класс родительского блока .sidebar_left
(В исходном html-коде класс не указан, т.к. к коду меню отношения не имеет).
/* Вывод */ .my_menu .parent:hover .sub-menu { display: block; top: 4px; } /* со смещением вправо */ .sidebar_left .my_menu .parent:hover .sub-menu { left: 100%; margin-left: -10px; }
×
Информация
Если у родительского блока нет класса, или он применяется как к правой так и к левой колонкам — нужно этот класс добавить к тегу nav.menu_color.sidebar_left
.
Если навигационное меню расположено в правой колонке, то будет логично если подменю выпадает слева. В противном случаее оно может оказаться за пределами экрана.
/* Смещение влево */ .sidebar_right .my_menu .parent:hover .sub-menu { right: 100%; left: auto; margin-right: -5px; }
Простая анимация
Что мы будем анимировать. В данном случае, эффекты довольно простые:
Переопределение существующих стилей:
/* Оформление пункта */ .menu_color > ul > li > a { color: #999; background: rgba(0, 0, 0, 0); /* добавляем код */ -webkit-transition: all .3s; -moz-transition: all .3s; -o-transition: all .3s; transition: all .3s; } /* Офррмление подпунктов */ .menu_color .sub-menu li a{ color: #555; background: rgba(0, 0, 0, 0); /* добавляем код */ -webkit-transition: all .3s; -moz-transition: all .3s; -o-transition: all .3s; transition: all .3s; }
А вот с плавным появленем подменю проблема …
Дело в том, что использовать display: none;
для того чтобы скрыть подменю нельзя — анимация работать не будет. Поэтому рассмотрим другой способ.
Скрытие подменю. Вариант 2
Альтернативным способом является смещение меню в исходном состоянии за пределы экрана + полная прозрачность.
/* Переопределение sub-menu*/ .my_menu .sub-menu { display: block; /* переопределено */ position: absolute; top: 0; width: 200px; z-index: 9999; /* Добавить */ opacity: 0; -webkit-transition: opacity .5s, top .7s; -moz-transition: opacity .5s, top .7s; -o-transition: opacity .5s, top .7s; transition: opacity .5s, top .7s; } /* Смещение за экран */ .my_menu .sub-menu { left: -3000px; } /* Переопределяем эффект отображения при наведении*/ .my_menu .parent:hover > .sub-menu { display: block; top: 4px; /* Добавить */ opacity: 1; }
Раздвижное меню-аккордеон
×
Несколько слов вступления
В данном примере рассмотрена технология создания аккордеон-меню, раскрывающегося по hover
.
Я бы не рекомендовал без необходимости использовать такое меню на сайте. Элементы страницы не должны жить своей жизнью (хлопающие как простыни на ветру подменю, раскрывающиеся аккордеоны, если его не аккуратно задеть мышкой …
Аккордеон должен раскрываться по click
, а это уже JS. А рассмотрение javascript выходит за рамки раздела HTML/CSS…
Попробуем создать аккордеон-меню из простого выпадающего меню, внеся минимальные изменения в код разметки и стили.
Добавлен класс my_accordion
к классу родительского контейнера, а класс .sub-menu
заменен на .sub-accordion-menu
. Можно было бы не заменять, а просто переопределить, но это усложнит пример для понимания.
<nav> <ul> <li><a href="#/">пункт 1</a></li> <li><a href="#/">родительский пункт 2</a> <ul#/">дочерний подпункт 1</a></li> <li><a href="#/">дочерний подпункт 2</a></li> </ul> </li> <li><a href="#/">пункт 3</a></li> <li><a href="#/">пункт 4</a></li> <li><a href="#/">пункт 5</a></li> </ul> </nav>
/* === Группировка классов === */ /* Убираем маркеры и отступы */ . my_menu, .sub-menu, .sub-accordion-menu { list-style:none; margin:0; padding:0; } /* Подсветка пункта при наведении */ .menu_color > ul > li > a:hover, .my_menu .parent .sub-accordion-menu li a:hover { color: #bbb; background: rgba(0, 0, 0, 0.1); } /* Разделитель пунктов меню */ .menu_color > ul > li + li > a, .menu_color .sub-accordion-menu li > a { border-top: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.15); }
После этого добавим стили, для закрытого и раскрытого аккордеона:
/* === Закрытый ===*/ .sub-accordion-menu { display: block; position: static; width: auto; overflow: hidden; border: none; margin: 0!important; max-height: 0; /* Скрываем выпадающее подменю */ transition: max-height 1s; /* Задержка раскрытия */ } /* === Открытый ===*/ .sub-accordion-menu { max-height: 1000px; } .sub-accordion-menu > li > a { padding-left: 40px; /* Добавляем отступ для подпунктов */ }
Примечание.
Почему было использовано свойство max-height
, а не height
? Потому что мы не знаем высоту раскрывающегося подменю, а при использовании значения height: auto
— анимация не срабатывает.
Горизонтальное меню
По структуре горизонтальное меню ни чем не отличается от вертикального, html-код одинаковый. Теоретически, получить горизонтальное меню из вертикального можно заменой/добавлением класса содержащего контейнера.
Чтобы не усложнять разметку и оформление, последовательно создадим горизонтальное выпадающее меню с нуля, со своими классами.
В итоге наше меню будет выглядеть так:
За основу возьмем код вертикального выпадающего меню и заменим классы:
<nav> <ul> <li><a href="#/">punkt 1</a></li> <li><a href="#/">dropdown</a> <div> <ul> <li><a href="#/">sub punkt 1</a></li> <li><a href="#/">sub punkt 2</a></li> </ul> <div> </li> <li><a href="#/">punkt 3</a></li> <li><a href="#/">active</a></li> <li><a href="#/">punkt 5</a></li> </ul> </nav>
Разметка
/* === Разметка основного меню === */ . hz-bar ul { list-style: none; margin:0; padding:0; } .hz_menu > li { float: left; margin:0; padding:0; position:relative; } .hz_menu li a { display:block; margin:0; padding:15px 20px; text-decoration: none; }
Что было сделано:
- Сброс стилей по умолчанию для тега
ul
- Создание горизонтального меню, путем присвоения тегам
li
, содержащим пунткы основного меню, свойстваfloat: left
- Установка отступов для пунктов меню
Пояснения:
Конструкция .hz_menu > li
распространяется только на пункты основного меню и не затрагивает выпадающее, в то время как .hz_menu li a
задается для всех пунктов. Некоторые свойства, специфичные для подменю, будут переопределены в дальнейшем.
Разметка выпадающего меню
/* === Разметка выпадающего подменю === */ .dropdown_menu { display: block; position: absolute; left: -3000px; top: 100%; } . dropdown_menu > ul { border: 1px solid; margin-top: 10px; /* отступ от основного меню */ padding: 10px 1px; min-width: 140px; opacity: 0; transition: opacity .5s; /* анимация прозрачности */ } .dropdown_menu li a { white-space: nowrap; /* если не очень длинные заголовки */ z-index: 9999; padding: 10px 20px; } .parent_dropdown:hover .dropdown_menu { left: 0px; } .parent_dropdown:hover .dropdown_menu ul { opacity: 1; }
Рассмотрим некоторые особенности:
- Как было видно из html-кода, выпадающее меню обернуто в дополнительный контейнер
div.dropdown_menu
. Для чего? В принципе, можно вполне обойтись и без него, но эта обертка дает некоторые дополнительные возможности оформления. В частности, возможность задать отступ от основного меню.
Если задать отступ непосредственно для тегаul
без обертки, при перемещении курсора от основного пункта к подпункту hover-эффект прервется и подменю пропадет … Дополнительный контейнер обеспечивает, в данном случае, отсутствие разрыва. - Для подпункт определено правило
white-space: nowrap
. Дело в том что абсолютно позиционированное подменю имеет максимальную ширину родительского пункта, и, соответственно, текст подпунктов будет переноситься на новую строку. Это не очень удобно при коротких названиях основных пунктов.
Данное правило предотвращает перенос. Как альтернатива (дополнение), минимальная ширина подменю была задана явно.
Оформление
Перед тем как заняться цветовым оформлением, необходимо добавить еще несколько стилевых правил разметки. Я специально перенес их в офомление, чтобы был понятнее смысл.
Если основному контейнеру назанчить цвет фона, то мы его не увидим по одной простой причине:
Теги li
, которым присвоено float: left
, выпадают из основного потока, их для основного контейнера как-бы не существует, поэтому он «схлопывается» и имеет высоту 0. Соответственно, никакого цветового оформления мы не увидим.
Решение
/* Предотвращаем схлопывание */ .hz-bar:after { content: ''; display: table; clear: both; }
Теперь контейнер будет вести себя более дружелюбно и можно его оформлять
/* === Оформление меню === */ .menu_bordo { background: #7D0000; } .menu_bordo .hz_menu > li > a { color: #DBE6B7; } .menu_bordo .hz_menu > li > a:hover { color: #fff; } .menu_bordo .hz_menu .active a{ box-shadow: inset 0 15px 15px rgba(0, 0, 0, 0.2); color: #fff; cursor: default; }
Здесь все достаточно очевидно. Единственное, cursor: default
, следовало бы перенести в разметку, чтобы не привязывать к классу цветового оформления.
Для выделения активного пункта меню была применена тень.
/* === Оформление выпадающего подменю === */ .menu_bordo .dropdown_menu > ul { background: #fff; border-color: #ddd; } .menu_bordo .dropdown_menu > ul > li > a { color: #555; } .menu_bordo .dropdown_menu > ul > li > a:hover { background: #7D0000; color: #fff; }
На этом цветовое оформление можно считать завершенным. Теперь с легкостью можно подкорректировать цветовую гамму, или создать несколько классов для разных вариантов оформления.
Дополнительно
Необязательные стилиевые правила. Первое задает вертикальные разделители между пунктами (аналогично вертикальному меню), второе — дополнительный маркер для родительского пункта.
/* Дополнительно. Разделители пунктов + маркер */ .hz_menu > li + li > a { border-left: 1px solid rgba(255, 255, 255, 0.1); box-shadow: -1px 0 0 rgba(0, 0, 0, 0.15); } .parent_dropdown > a:after { display: inline-block; padding: 1px 0 0 3px; content: "\25BC "; font-size: 10px; vertical-align: top; }
Здесь вы можете скачать Код примера горизонтального меню
Выпадающее меню на HTML и CSS
Выпадающее меню можно сделать на CSS не используя скрипты и модули. Просто дописываем несколько строк в CSS файл и готово. Несмотря на простоту меню будет достаточно универсальным. Стили подходить под произвольное количество уровней вложенности. Хоть два хоть десять уровней. Код при этом остаётся тем же. В статье описаны три вида меню, но если вы только начинаете разбираться в вёрстке советую читать сначала. Так будет проще понять.
- Вертикальное выпадающее меню
- Горизонтальное выпадающее меню с одним уровнем вложенности
- Горизонтальное меню с несколькими уровнями вложенности
Сначала сделаем HTML разметку для меню. Принято делать меню списком. Это не стандарт просто так сложилось.
<ul>
<li><a href="#">пункт 1</a>
<ul>
<li><a href="#">пункт 1.1</a></li>
<li><a href="#">пункт 1.2</a></li>
</ul>
</li>
<li><a href="#">пункт 2</a>
<ul>
<li><a href="#">пункт 2.1 многа букаф</a></li>
<li><a href="#">пункт 2.2</a>
<ul>
<li><a href="#">пункт 2. 2.1</a></li>
<li><a href="#">пункт 2.2.2</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">пункт 3</a></li>
<li><a href="#">пункт 4</a></li>
<li><a href="#">пункт 5</a></li>
</ul>
HTML файл мы больше трогать не будем. Все дальнейшие изменения производятся только за счёт CSS. Первое что нам нужно сделать — скрыть вложенные пункты.
ul.nav li ul {display: none;}
Ещё нужно убрать маркеры но это дело вкуса.
ul.nav li {list-style: none;}
Чтобы вложенные пункты появлялись при наведении на родительский пункт используем псевдокласс :hover, при этом нужно сделать так что бы появлялись только пункты первого уровня вложенности. Для этого используем знак >
ul.nav li:hover > ul {display: block;}
В этой строчке заключается вся магия нашего выпадающего меню, поэтому разберём её подробнее. Благодаря псевдоклассу :hover, при наведении курсора на пункт меню, он же элемент списка li, для первого вложенного списка ul значение display станет block. Так открывается первый уровень вложенности. Если на этом уровне есть пункты содержащие подпункты, то при наведении на них также откроется только один вложенный уровень.
С основной механикой разобрались. Осталось переопределить место где будут появляться вложенные пункты. Для этого воспользуемся свойством position: absolute. При таком позиционировании отсчёт координат ведётся от края окна браузера если только для родительского элемента не задано свойство position с значением fixed, relative или absolute. В этом случае отсчёт ведётся от края родительского элемента.
Используя свойство position мы переместим вложенные пункты в право на расстояние равное ширине меню. В рассматриваемом способе есть одно ограничение. При позиционировании нам придётся жёстко задать ширину. С другой стороны вертикальное меню размещается в сайдбаре ширина которого заранее определена, поэтому привязка к ширине не должна вызвать проблем.
/* Вертикальное выпадающее меню*/
body{
background: #DCDCDC;
}
/*блок меню*/
ul{
margin: 0;
padding: 0;
}
ul.nav li {
background: #B3B3FF;
border: 1px solid #FFFFFF;
list-style: none;
width: 150px; /*ширина блока меню*/
}
ul.nav li a {
text-decoration: none;
display: block;
padding: 5px 5px 5px 15px;
}
ul.nav li ul {
display: none; /*скрываем вложенные пункты*/
}
/*Выпадающее меню*/
ul.nav li:hover {
/* позиционирование вложенных элементов
* будет расчитыватьться относительно
* родительского элемента
*/
position: relative;
background: yellow;
}
ul.nav li:hover > ul {
display: block;
}
ul.nav li:hover ul{
position: absolute;
top: 0; /*Задаём координаты для вложенных пунктов*/
left: 150px; /*меню раскрывается вправо*/
}
Вот что должно получиться в результате. демка
Для горизонтального меню мы будем так же применять позиционирование но есть несколько нюансов. Что бы сделать меню горизонтальным используем свойство float. Меню будет раскрываться вниз значит при позиционировании нужно учитывать высоту. Для начала сделаем меню с одним уровнем вложенности. Вложенное меню также будет горизонтальным. Для этого вложенное меню позиционируем относительно списка а не родительского пункта и задаём для него ширину.
/*Горизонтальное выпадающее меню с одним уровнем вложенности*/
body{
background: #DCDCDC;
}
/* Блок меню*/
ul{
margin: 0;
padding: 0;
}
ul.nav li {
background: #B3B3FF;
border-right: 1px solid #FFFFFF;
float: left; /*делаем меню горизонтальным*/
height: 30px;
list-style: none;
}
ul.nav li a {
text-decoration: none;
display: block;
padding: 5px 5px 5px 15px;
}
ul.nav li ul {
display: none; /*скрываем вложенные пункты*/
}
ul.nav li:hover {
background: yellow;
}
/*Выпадающее меню*/
ul.nav {
position: relative;
background: #B3B3FF;
height: 30px;
width: 600px;
}
ul.nav li:hover > ul {
background: #D0E0FF;
border-top: 1px solid white;
display: block;
width: 600px;
position: absolute;
top: 30px;
left: 0;
}
Вот что получиться в итоге демка.
Созданное в предыдущем пункте меню также может быть многоуровневым но выглядит оно при этом не очень. На мой взгляд многоуровневое меню должно открываться следующим образом — первый уровень вниз остальные вправо. Здесь, в отличии от предыдущего горизонтального меню, вложенные пункты позиционируем относительно родительского пункта и задаём для них ширину. Ширина нам нужна для второго и последующих уровней вложенности. В этом меню мы возьмём понемногу от предыдущих и немного добавим нового.
/*Горизонтальное выпадающее меню a*/
body{
background: #DCDCDC;
}
/* Блок меню*/
ul{
margin: 0;
padding: 0;
}
ul.nav li {
background: #B3B3FF;
border-right: 1px solid #FFFFFF;
float: left; /*делаем меню горизонтальным*/
height: 30px;
list-style: none;
}
ul.nav li a {
text-decoration: none;
display: block;
padding: 5px 5px 5px 15px;
}
ul.nav li ul {
display: none; /*скрываем вложенные пункты*/
}
ul.nav { /*задаём высоту и ширину меню*/
background: #B3B3FF;
height: 30px;
width: 600px;
}
/*Выпадающее меню*/
ul. nav li:hover {
background: yellow;
position: relative;
}
ul.nav li:hover > ul {
border-top: 1px solid white;
display: block;
position: absolute;
top: 30px; /*первый уровень меню раскрывается вниз*/
left: 0;
}
/*Второй и последующие уровни вложенности*/
ul.nav li ul li{
border-bottom: 1px solid white;
height: auto;
width: 150px;
}
ul.nav li:hover ul li ul{
position: absolute;
top: 0;
left: 150px; /*второй и последующие уровни расскрываются вправо*/
}
Вот так будет выглядеть наше многоуровневое меню демка.
Создание меню на CSS – руководство для новичков
Просторы всемирной сети стремительно растут, размещая огромное множество различных веб-сайтов, каждый из которых стремится привлечь внимание посетителей и заинтересовать их.
Способы покорения людских сердец выбираются разные — от применения Flash анимации, использования баннеров и смелых дизайнерских решений до различных звуковых и визуальных эффектов.
Однако не стоит забывать, что сайт — это в первую очередь источник информации, поэтому удобству представления контента на сайте веб-разработчик должен уделять особое внимание и именно поэтому навигация, понятная посетителю на интуитивном уровне, так важна.
Меню является самой распространённой системой навигации на сайте, которую можно сравнить с оглавлением в книге. Меню должно быть заметно на любой странице ресурса, позволяя пользователю мгновенно перейти на интересующий раздел.
На объёмных сайтах, содержащих более 50 страниц, невозможно разместить полное меню для доступа ко всем разделам.
В таком случае следует использовать выпадающее меню на CSS, при клике на которое появляются дополнительные ссылки на подразделы.
Разновидности меню в CSS
Существует сразу несколько видов и типов CSS меню:
- Главное меню. Это список определённых ссылок на ключевые разделы веб-сайта.
- Дополнительное меню. Такое меню имеет иерархическую структуру и бывает трёх типов:
- Выпадающее меню. Раскрывается при наведении курсора мыши на пункт;
- Всплывающее меню сайта. Раскрывается при клике на определённом пункте;
- Статическое дополнительное меню для CSS. Древовидная структура, представленная в уже раскрытом виде.
Как создать меню в CSS?
Приведём пример создания простого горизонтального и вертикального меню на CSS с пояснениями.
Код горизонтального меню прописывается следующим образом:
<head> <title>Горизонтальное меню сайта</title> <style type="text/css"> .navigation { list-style: none; /* Отключение отображения маркеров. */ } .navigation li { float: left; /* Выстраивание элементов списка в один ряд. */ margin-right: 1px; /* создание отступов для того, чтобы не сливались пункты меню. */ font-family: Verdana, Arial, Helvetica, sans-serif; /* Указание типа шрифта. */ font-size: 14px; /* Размер текста в ссылках. */ } .navigation li a { display: block; /* Изменение отображения на блочное для того чтобы иметь возможность задать внутренние отступы. */ padding: 15px 20px; /* Внутри блочные отступы. */ background: #0db5b5; /* Цвет блоков меню. */ color: #3f3f3f; /* Цвет текста в блоках меню. */ text-decoration: none; /* Устранение подчёркивания ссылок. */ position: relative; /* Это необходимо при использовании Internet Explorer 6 для того, чтобы ссылка по всей своей площади была «кликабельной». */ } .navigation li a:hover { background: #92d3d3; /* Цвет блока при наведении курсора. */ color: #6b6b6b; /* Цвет текста при наведении курсора. */ } </style> </head> <body> <ul> <!-- Описание ссылок в меню и сами ссылки. --> <li><a href="https://www.internet-technologies.ru/news" target="_blank">Новости</a></li> <li><a href="https://www.internet-technologies.ru/articles" target="_blank">Статьи</a></li> <li><a href="https://www.internet-technologies.ru/templates/" target="_blank">Шаблоны</a></li> <li><a href="https://www.internet-technologies.ru/books" target="_blank">Книги</a></li> <li><a href="https://www.internet-technologies.ru/scripts" target="_blank">Скрипты</a></li> <li><a href="https://www. internet-technologies.ru/lessons" target="_blank">Видео</a></li> <li><a href="http://talk.internet-technologies.ru/" target="_blank">Форум</a></li> </ul> <body> </body> </html>
В конечном итоге получается подобное горизонтальное меню:
Код вертикального меню записывается так:
<head> <title>Вертикальное меню сайта</title> <style type="text/css"> .navigation { list-style: none; /* Отключение отображения маркеров. */ width: 120px; /* Ширина меню. */ } .navigation li { margin-top: 5px; /* Отступ между блоками по высоте, необходимый для того чтобы пункты меню не сливались */ font-family: Verdana, Arial, Helvetica, sans-serif; /* Тип шрифта пунктов меню */ font-size: 14px; /* Размер текста меню */ } .navigation li a { display: block; /* Изменение отображения на блочное для того, чтобы иметь возможность задать внутренние отступы. */ padding: 4px 15px; /* Отступы внутри блоков. */ background: #0db5b5; /* Цвет блоков меню. */ color: #3f3f3f; /* Цвет текста в блоках меню. */ text-decoration: none; /* Устранение подчёркивания ссылок. */ position: relative; /* Это необходимо при использовании Internet Explorer 6 для того, чтобы ссылка по всей своей площади была «кликабельной». */ } .navigation li a:hover { background: #92d3d3; /* Цвет фона при наведении курсора мыши */ color: #6b6b6b; /* Цвет текста при наведении курсора мыши */ } </style> </head> <body> <!-- Описание ссылок в меню и сами ссылки. --> <ul> <li><a href="https://www.internet-technologies.ru/news" target="_blank">Новости</a></li> <li><a href="https://www.internet-technologies.ru/articles" target="_blank">Статьи</a></li> <li><a href="https://www.internet-technologies.ru/templates/" target="_blank">Шаблоны</a></li> <li><a href="https://www.internet-technologies. ru/books" target="_blank">Книги</a></li> <li><a href="https://www.internet-technologies.ru/scripts" target="_blank">Скрипты</a></li> <li><a href="https://www.internet-technologies.ru/lessons" target="_blank">Видео</a></li> <li><a href="http://talk.internet-technologies.ru/" target="_blank">Форум</a></li> </ul> <body> </body> </html>
Вертикальное меню, полученное при помощи данного кода, выглядит так:
Руководствуясь всеми вышеперечисленными принципами, приведём код для простого выпадающего меню:
<ul> <li><a href="https://www.internet-technologies.ru/news">Новости</a></li> <li><a href="https://www.internet-technologies.ru/articles" target="_blank">Статьи</a> <ul> <li><a href="#">Ссылка 1</a></li> <li><a href="#">Ссылка 2</a></li> <li><a href="#">Ссылка 3</a></li> </ul> </li> <li><a href="https://www. internet-technologies.ru/templates/">Шаблоны</a> <ul> <li><a href="#">Ссылка 1</a></li> </ul> </li> <li><a href="https://www.internet-technologies.ru/books">Книги</a></li> <li><a href="https://www.internet-technologies.ru/scripts">Скрипты</a></li> <li><a href="https://www.internet-technologies.ru/lessons">Видео</a></li> <li><a href="http://talk.internet-technologies.ru">Форум</a></li> </ul> <style type="text/css"> #menu { background: #0db5b5; width: 60%; padding:1; text-align: center; float:left; font-family: Verdana, Arial, Helvetica, sans-serif; } #menu a { color: #3f3f3f; text-decoration: none; } #menu a:hover { color: #6b6b6b; } #menu ul { padding:0; margin:0; } #menu li { list-style: none; padding: 0 15px 0 0; width:100px; margin: 0 auto; float:left; line-height: 50px; } #menu li ul { position:absolute; display: none; } #menu li ul li { float: none; display: inline; width:100px; line-height:35px; } #menu li ul li:hover { background: #c392b; } #menu li:hover ul { display:block; } #menu li ul li { display: block; background:#92d3d3; } </style>
Получаем такое выпадающее меню:
Как вы видите, достаточно простая HTML разметка и всего несколько строк CSS кода позволяют создать простое, но стильное меню, которое обязательно найдёт свое место в каком-либо веб-сайте. Обязательно попробуйте реализовать что-то подобное самостоятельно.
Желаем удачи!
Видеоурок 1. Выпадающее меню для сайта с помощь html и css на WordPress
Не так давно, на одном из рабочих сайтов, мне нужно было сделать выпадающее меню. Ну дело вроде пустяковое, думал по быстрому сделаю и получу оплату, но не тут то было =) Сначала я решил взять код html и css из каких ни будь подобных уроков и все скопировать, то есть сделать по шаблону. Но после того, как я обнаружил что на многих блогах код дают не правильный — не рабочий, я решил все сделать сам… И все оказалось достаточно просто и быстро. Покажу вам html и css код выпадающего меню — рабочий 🙂 Также рекомендую узнать, как сделать выпадающее меню на WordPress сайте.
html код выпадающего меню — скилет
html код выпадающего меню одинаков, как для вертикального, так и для горизонтального меню. Вы можете увеличить количество пунктов меню, копируя часть кода и вставляя в нужное место.
<ul> <li><a href="/">Подменю 1</a> <ul> <li><a href="/" >Пункт подменю 1</a></li> <li><a href="/">Пункт подменю 2</a></li> <li><a href="/">Пункт подменю 3</a></li> </ul> </li> <li><a href="/">Подменю 2</a> <ul> <li><a href="/">Пункт подменю 1</a></li> <li><a href="/">Пункт подменю 2</a></li> <li><a href="/">Пункт подменю 3</a></li> </ul> </li> </ul>
CSS код горизонтального выпадающего меню
Вот такое меню можно сделать моим способом. ..
Далее, я привожу вам css код горизонтального меню. Внешний вид меню достаточно прост, но при начальных знаниях css вы сможете придать этому меню тот стиль, который подойдет к дизайну вашего сайта.
#mymenu { float: left; width: 100%; margin: 20px 10px; list-style: none; } #mymenu li { float: left; width: auto; padding: 0 10px; font-size: 18px; } #mymenu li ul { display: none; width: 200px; } #mymenu li:hover ul { display: block; position: absolute; list-style: none; margin: 0; padding: 0; } #mymenu li ul li { float: left; width: 200px; padding: 5px 0; font-size: 14px; }
CSS код вертикального выпадающего меню
А вот и вертикальное выпадающее меню для вашего сайта
#mymenu { float: left; width: 150px; height: auto; margin: 20px 10px; list-style: none; } #mymenu li { display: block !important; width: auto; padding: 0 10px; font-size: 18px; } #mymenu li ul { display: none; width: 200px; } #mymenu li:hover ul { display: block; list-style: none; margin: 0 0 0 0px; padding: 0; } #mymenu li ul li { float: left; width: 200px; padding: 5px 0; font-size: 14px; }
В данном случае меню выпадает вертикально вниз. Но если в CSS стилях заменить вот этот код, подменю выпадает вправо:
#mymenu li:hover ul { display: block; list-style: none; margin: 0 0 0px 100px; position: absolute; padding: 0; }
Выпадающее меню для сайта
Выпадающее меню будет полезным для сайта, где планируется меню с большим количеством внутренних пунктов. Преимущества выпадающего меню — это экономия места, удобство использования и простота изготовления 😉 В данном примере меню я не использовал ничего, кроме HTML и CSS, что дает определенные плюсы. Это меню можно сделать многоуровневым — хотя, возможно будет не аккуратно смотреться, но бывают случаи, что это просто необходимо.
Если у вас код откажется работать — пишите в комментарии, подправлю вам лично 🙂
Удачной работы! 😉
CSS меню. Выпадающее меню. Горизонтальное CSS меню. Вертикальное CSS меню.
Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah. ru. Я решил создать новую рубрику Создание и оформление сайтов, в этой рубрике будет много вкусного и интересного. Поскольку, здесь я буду писать о реальных примерах. Тема сегодняшней публикации — создание CSS меню, которая находится в разделе CSS меню.
Любое CSS меню должно отвечать нескольким требованиям: CSS меню должно быть удобным, компактным, доступным для пользователя. Чтобы меню сайта было компактным и удобным его следует делать выпадающим. Конечно, выпадающее CSS меню не будет корректно работать в старых браузерах таких как IE6. Выпадающее меню удобно тем, что не занимает много места на веб-странице. В данном примере не будет использоваться JavaScript и библиотека JQuery — а это означает, что выпадающее меню будет доступно для пользователей, у которых в настройках браузера отключены скрипты.
И так, сегодня мы создадим горизонтальную навигацию по сайту и вертикальную навигацию, при этом мы будем использовать только HTML и CSS.
Создание CSS меню. Создание выпадающего меню. Шаг 1 — создаем вертикальное HTML меню.
Содержание статьи:
Для начала мы создаем маркированный HTML список при помощи тега <ul> и тега <li>:
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»>
<html>
<head>
<meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″>
<title>Создание CSS меню</title>
</head>
<body>
<span><span><>
</span></span><ul>
<li>Первый пункт</li>
<li>Второй пункт
<ul>
<li>Первый подпункт</li>
<li>Второй подпункт</li>
</ul>
</li>
<li>Третий пункт
<ul>
<li>Первый подпункт</li>
<li>Второй подпункт</li>
<li>Третий подпункт</li>
</ul>
</li>
<li>Четвертый пункт</li>
</ul>
</body>
</html>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»> <html> <head> <meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″> <title>Создание CSS меню</title> </head> <body> <span><span><> </span></span><ul> <li>Первый пункт</li> <li>Второй пункт <ul> <li>Первый подпункт</li> <li>Второй подпункт</li> </ul> </li> <li>Третий пункт <ul> <li>Первый подпункт</li> <li>Второй подпункт</li> <li>Третий подпункт</li> </ul> </li> <li>Четвертый пункт</li> </ul> </body>
</html> |
Примерно должно получиться что-то типа такого списка:
- Первый пункт
- Второй пункт
- Первый подпункт
- Второй подпункт
- Третий пункт
- Первый подпункт
- Второй подпункт
- Третий подпункт
- Четвертый пункт
Конечно, это еще не меню и даже не навигация, поскольку ни один из пунктов HTML списка не является ссылкой. Теперь нужно сделать каждый пункт нашего HTML списка ссылкой. Таким образом, у нас получится вертикальное HTML меню, таблицу стилей (css) мы еще пока не будем трогать и подключать. Чтобы пункты HTML списка стали ссылками, содержимое каждого элемента <li> внутрь тега <a>:
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»>
<html>
<head>
<meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″>
<title>Создание CSS меню</title>
</head>
<body>
div>
<ul>
<li><a href=»#»>Первый пункт</a></li>
<li><a href=»#»>Второй пункт</a>
<ul>
<li><a href=»#»>Первый </a></li>
<li><a href=»#»>Второй </a></li>
<li><a href=»#»>Третий </a></li>
</ul>
</li>
<li><a href=»#»>Третий пункт</a>
<ul>
<li><a href=»#»>Первый подпункт</a></li>
<li><a href=»#»>Второй подпункт</a></li>
</ul>
</li>
<li><a href=»#»>Четвертый пункт</a></li>
</ul>
<div>
</body>
</html>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»> <html> <head> <meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″> <title>Создание CSS меню</title> </head> <body> div> <ul> <li><a href=»#»>Первый пункт</a></li> <li><a href=»#»>Второй пункт</a> <ul> <li><a href=»#»>Первый </a></li> <li><a href=»#»>Второй </a></li> <li><a href=»#»>Третий </a></li> </ul> </li> <li><a href=»#»>Третий пункт</a> <ul> <li><a href=»#»>Первый подпункт</a></li> <li><a href=»#»>Второй подпункт</a></li> </ul> </li> <li><a href=»#»>Четвертый пункт</a></li> </ul> <div> </body>
</html> |
Теперь мы получили вертикальное HTML меню. У тега <a> есть атрибут href, в котором следует указывать адрес страницы, на который будет вести ссылка, у меня нет необходимости этого делать, поэтому в качестве адреса я указал символ # или забой. Ссылки, у которых в качестве значения атрибута href указан #, никуда не ведут. Обратите внимание: вертикальной HTML меню я поместил в контейнер <div>, поскольку в спецификации HTML 4 есть правило: внутри элемента <body> могут находиться только блочные элементы и элементы <ins> и <del>. У тега <div> есть один атрибут id со значением «block». У корневого тега <ul> есть атрибут id со значением «hnav», этот атрибут потребуется нам для создания вертикального и горизонтального CSS меню.
Создание CSS меню. Выпадающее меню. Шаг 2 — создаем горизонтальное CSS меню.
Далее мы будем задавать стили CSS для нашего будущего меню. Для начала, давайте зададим стиль для контейнера <ul> со значением hnav атрибута id, то есть общий стиль для нашего выпадающего меню:
#hnav {
list-style: none;
margin: 0;
padding: 0;
font-size: 1.2em;
float: right;
position: relative
}
| #hnav { list-style: none; margin: 0; padding: 0; font-size: 1.2em; float: right; position: relative
} |
Давайте коротко пройдемся по CSS свойствам и посмотри для чего они нужны. Первое CSS свойство, которое было задано list-style со значением none, данное свойство позволяет избавиться от мерзких маркеров HTML списка, но только для родительских пунктов вертикального меню, у дочерних HTML элементов маркеры останутся.
Свойство margin делает нулевым отступ от края элемента ul. Свойство paddin убирает внутренние отступы HTML элемента ul. Свойство font-size задает размер текста пунктов нашего CSS меню. Свойство float позволяет выравнять CSS меню, в нашем случае по правому краю. Свойство position со значение relative позиционирует контейнер ul относительно его исходного места.
После того, как мы задали общий стиль для нашего горизонтального меню, можно задать стили для всех родительских пунктов навигации:
#hnav li {
float: left;
position: relative;
}
| #hnav li {
float: left;
position: relative;
} |
Для каждого элемента li, которые находятся внутри контейнера ul мы задаем два свойства: float со значением left (тем самым мы добиваемся того, что наше CSS меню стало горизонтальным) и опять же, задаем свойство position со значением relative, чтобы элементы заняли свое место.
Теперь мы можем задать стили, для содержимого контейнеров li, то есть стили для пунктов горизонтального CSS меню:
#hnav li a{
float: left;
display: block;
padding: 4px;
text-decoration: none;
color: #666;
text-transform: uppercase;
margin-right: 10px;
}
| #hnav li a{ float: left; display: block; padding: 4px; text-decoration: none; color: #666; text-transform: uppercase; margin-right: 10px; } |
Свойство display имеет значение block, это говорит нам о том, что пункты нашего CSS меню будут вести себя как блочные (в данном случае контейнеры <a>, тег <a> сам по себе строчный элемент). Свойство padding устанавливает внутренние отступы между пунктами меню, чтобы те не накладывались друг на друга. Значение none свойства text-decoration позволяет убрать подчеркивание у ссылок(меню же из ссылок состоит). Свойство color задает цвет текста внутри контейнера <a>. Свойство text-transform: uppercase; задает начертание текста нашего CSS меню, а именно, весь текст будет написан прописными буквами.
Теперь можно задать то, как будут выглядеть пункты меню при наведение на них курсора мышки:
#hnav li:hover a,
#hnav li a:hover
{
background: #999;
color: #fff;
}
| #hnav li:hover a, #hnav li a:hover { background: #999; color: #fff; } |
Свойство color изменяет цвет текста пункта меню при наведение на него курсора мыши. Свойство background задает цвет фона пункта CSS меню при наведение курсора на пункт.
Теперь мы можем «спрятать» вложенные пункты меню:
#hnav ul {display: none;}
| #hnav ul {display: none;} |
После того, как мы «спрятали» пункты выпадающего меню, нужно сделать так, чтобы эти пункты выпадали при наведение курсора:
#hnav li:hover ul {display: block;}
#hnav ul
{
float: none;
position: absolute;
list-style: none;
margin: 0;
padding: 0;
top: 1.8em;
left: 0;
}
#hnav ul li
{
float: none;
clear: none;
margin: 0;
padding: 0;
width: auto;
color: #999;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #hnav li:hover ul {display: block;}
#hnav ul { float: none; position: absolute; list-style: none; margin: 0; padding: 0; top: 1.8em; left: 0; }
#hnav ul li { float: none; clear: none; margin: 0; padding: 0; width: auto; color: #999; } |
В данном случае мы добились того, что вложенные пункты меню выпадают и немного оформили наше меню, сделали его более читабельным.
После того, как мы задали стили для основных пунктов горизонтального меню, можно задать стили и для вложенных пунктов меню, задать то, как будут выглядеть вложенные пункты меню, как они будут изменяться при наведение на них курсора мыши и то, как будут выглядеть посещенные пункты:
#hnav li:hover ul li a,
#hnav ul li a
{
line-height: 200%;
display: block;
padding: 0 6px 0 0;
float: none;
text-transform: lowercase;
color: #999;
background: none;
}
#hnav li:hover ul li a:hover,
#hnav ul li a:hover
{
background: none;
color: #000;
}
<span>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #hnav li:hover ul li a, #hnav ul li a { line-height: 200%; display: block; padding: 0 6px 0 0; float: none; text-transform: lowercase; color: #999; background: none; }
#hnav li:hover ul li a:hover, #hnav ul li a:hover { background: none; color: #000; }
<span> |
Как видите, мы создали горизонтальное выпадающее CSS меню, при этом, не используя JavaScript. Можно перейти к созданию вертикального CSS меню.
Так будет выглядеть горизонтальное выпадающее CSS меню:
Горизонтальное CSS меню. Выпадающее CSS меню.
Создание CSS меню. Выпадающее меню. Шаг 3 — создаем вертикальное CSS меню.
Приступим к созданию вертикального CSS меню. Для начала создаем маркированный HTML список, точно такой же, как и для горизонтального меню:
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»>
<html>
<head>
<meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″>
<title>Создание CSS меню</title>
</head>
<body>
div>
<ul>
<li><a href=»#»>Первый пункт</a></li>
<li><a href=»#»>Второй пункт</a>
<ul>
<li><a href=»#»>Первый </a></li>
<li><a href=»#»>Второй </a></li>
<li><a href=»#»>Третий </a></li>
</ul>
</li>
<li><a href=»#»>Третий пункт</a>
<ul>
<li><a href=»#»>Первый подпункт</a></li>
<li><a href=»#»>Второй подпункт</a></li>
</ul>
</li>
<li><a href=»#»>Четвертый пункт</a></li>
</ul>
<div>
</body>
</html>
<span>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| <!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»> <html> <head> <meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″> <title>Создание CSS меню</title> </head> <body> div> <ul> <li><a href=»#»>Первый пункт</a></li> <li><a href=»#»>Второй пункт</a> <ul> <li><a href=»#»>Первый </a></li> <li><a href=»#»>Второй </a></li> <li><a href=»#»>Третий </a></li> </ul> </li> <li><a href=»#»>Третий пункт</a> <ul> <li><a href=»#»>Первый подпункт</a></li> <li><a href=»#»>Второй подпункт</a></li> </ul> </li> <li> |
CSS Вертикальная панель навигации
Вертикальная панель навигации
Чтобы создать вертикальную панель навигации, вы можете стилизовать элементы
внутри списка, помимо кода с предыдущей страницы:
Объяснение примера:
-
дисплей: блок;
— Отображение ссылок как блочных элементов составляет целое
область ссылки кликабельна (а не только текст), и это позволяет нам указать ширину
(а также отступы, поля, высота и т. д.если хотите) -
ширина: 60 пикселей;
— Элементы блока занимают всю ширину, доступную по умолчанию. Мы хотим указать ширину 60 пикселей
Вы также можете установить ширину
- и удалить ширину ,
- или для центрирования ссылок.
Добавьте свойство
border
в- , чтобы добавить границу вокруг панели навигации. Если ты тоже хочешь
- , кроме
последний:Пример
ul {
border: 1px solid # 555;
}li {
выравнивание текста: по центру;нижняя граница: твердое тело 1px # 555;
}li: последний ребенок {
нижняя граница: нет;
}Попробуй сам »
Полноростовая фиксированная вертикальная панель навигации
Создать полноразмерную «липкую» боковую панель навигации:
Пример
ul {
list-style-type: none;
маржа: 0;
отступ: 0;
ширина:
25%;
цвет фона: # f1f1f1;
высота: 100%; / * Полная высота * /
положение: фиксированное; / *
Сделать так, чтобы он прилипал, даже при прокрутке * /
перелив: авто; / * Включить прокрутку, если в боковой навигации слишком много контента * /
}Попробуй сам »
Примечание: Этот пример может некорректно работать на мобильных устройствах.
135 CSS Menu
Коллекция бесплатных HTML и CSS меню навигации примеров кода. Обновление апрельской коллекции 2019 года. 25 новинок.
- Мега Меню
- CSS Аккордеонное меню
- Круговые меню CSS
- Выпадающие меню CSS
- Мобильные меню CSS
- Боковое меню CSS
- Горизонтальные меню CSS
- Полноэкранные меню CSS
- CSS Скользящие меню
- CSS Переключить меню
- CSS Off-Canvas меню
- Меню начальной загрузки
О коде
Заполнение текста при наведении курсора
Заливка текста другим цветом при наведении курсора — творческий текстовый эффект.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Адаптивный: нет
Зависимости: —
Автор
- Дэн Бенмор
О коде
Круговые ссылки
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Адаптивный: нет
Зависимости: —
Автор
- Кассандра
О коде
Полностраничная навигация CSS
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
Автор
- Кассандра
О коде
Одностраничное приложение на чистом CSS
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: font-awesome.css
Сделано из
- HTML (мопс) / CSS (стилус)
О коде
Случайно сгенерированный blobby-навигатор, созданный с помощью CSS. Имеет плавную прокрутку привязки, использует фоновый фильтр
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
Автор
- Райан Маллиган
О коде
Полностраничная навигация
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
Автор
- Алекс Харт
О коде
Совместимые браузеры: Chrome, Edge, Firefox (частично), Opera, Safari
отзывчивый: да
Зависимости: —
Автор
- Такане Ичиносе
О коде
Концептуальный дизайн полностраничной навигации, полной типографики и использования значков в качестве больших изображений.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
Автор
- Cyd Stumpel
О коде
Раскрывающееся мобильное меню
CSS только раскладывающееся мобильное меню.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
Автор
- alphardex
О коде
Текст для заполнения меню при наведении курсора
Текст для заполнения меню при наведении курсора (
цвет
+фоновый клип
).Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Адаптивный: нет
Зависимости: —
О коде
Выпадающее меню
Плавное раскрывающееся меню.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Адаптивный: нет
Зависимости: —
Автор
- Swarup Kumar Kuila
О коде
Меню с Awesome Hover
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: bootstrap.css, bootstrap-social.css, font-awesome.css
Автор
- alphardex
О коде
Подчеркнутый пункт меню
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
Автор
- Кайл Лавери
О коде
Интерфейс меню Apple TV
Совместимые браузеры: Chrome, Edge, Opera, Safari
Адаптивный: нет
Зависимости: —
О коде
Сделал странную навигацию.Только CSS. Щелкнем!
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Адаптивный: нет
Зависимости: —
Автор
- Кэссиди Уильямс
О коде
Навигация с суб-навигацией
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Адаптивный: нет
Зависимости: —
Автор
- Райан Маллиган
О коде
CSS-навигация
Щелкните переключатель, чтобы открыть меню и увидеть волшебство.В этом эксперименте используется единственный CSS для стилизации, анимации и расположения элементов.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
Автор
- Людмила Третьякова
О коде
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Адаптивный: нет
Зависимости: font-awesome.css
Автор
- Гималаи Сингх
О коде
Взаимодействие с навигационной панелью
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Адаптивный: нет
Зависимости: —
Автор
- Гарет МакКинли
О коде
Выпадающее меню на чистом CSS
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Адаптивный: нет
Зависимости: —
Автор
- Микаэль Айналем
О коде
Круглое меню
Использование
border-radius
и обтравочных контуров для создания круглого веерного меню.Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
О коде
Меню вне холста Чистый CSS
Меню вне холста на чистом CSS с использованием только CSS.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
О коде
Строка меню CSS
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Адаптивный: нет
Зависимости: —
Автор
- Альберто Леон
О коде
Вертикальное темное меню с CSS
Простое вертикальное темное меню с CSS и значками.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Адаптивный: нет
Зависимости: font-awesome.css
Автор
- Микаэль Айналем
О коде
Меню «Еще»
Использование
clip-path
умножить на два, чтобы заставить объект неправильной формы заполнить вырезанную форму в эффекте раскрытия открытого меню.Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Адаптивный: нет
Зависимости: —
Автор
- Андрей Шарапов
О коде
Меню вне холста
Меню вне холста на чистом CSS.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
Автор
- Беннет Фили
Сделано из
- HTML (тонкий) / CSS (SCSS) / JS
О коде
Подвижное подчеркивание меню навигации
Совместимые браузеры: Chrome, Firefox, Opera, Safari
Адаптивный: нет
Зависимости: —
Автор
- Анимационное творчество
О коде
Складное меню CSS
Простое, но красивое складывающееся меню на CSS.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
Автор
- Скотт Кеннеди
О коде
Навигация Fun Hover
Забавный эффект навигации с использованием ключевых кадров CSS. Быстрый прыжок в старую школу.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Адаптивный: нет
Зависимости: —
О коде
Это чистый CSS. Чтобы это работало, все ссылки должны иметь одинаковые размеры. Вы должны сами настроить все, чтобы сообщать навигационной системе, сколько там элементов и куда должна перемещаться
.line
всякий раз, когда одна из ссылок зависает.Совместимые браузеры: Chrome, Edge (частично), Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
Автор
- Эрин МакКинни
О коде
Круглое меню
красивое круговое меню на чистом CSS.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: font-awesome.css
Автор
- Трис Тимб
О коде
Положение залипающей вспомогательной навигационной панели
Прикрепленная поднавигация на чистом CSS.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
О коде
Выпадающее меню
Выпадающее меню только CSS.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
Автор
- Жуан Марсель
О коде
Меню навигации
Можно использовать как навигацию, меню или эффект. Он использует преобразование CSS и перспективу для создания уникального эффекта анимации, подобного гололенсам.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Адаптивный: нет
Зависимости: —
О коде
3D панель навигации
3D панель навигации в HTML и CSS.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
Автор
- Ахил Сай Рам
О коде
Еще одно меню
Анимация плавающего меню на чистом CSS.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Адаптивный: нет
Зависимости: —
О коде
Меню на чистом CSS
Панель меню на чистом CSS без щелчка.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
Автор
- Петр Галор
О коде
CSS Menu Feat.Эмодзи
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
О коде
Меню
Меню стиля содержимого таблицы.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
О коде
Круглое меню
Круговое меню на чистом CSS.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: font-awesome.css
Автор
- Мехмет Бурак Эрман
Сделано из
- HTML (мопс) / CSS (стилус)
О коде
Перспективное меню
CSS только перспективные меню.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
О коде
Эффект меню
Эффекты меню обратного цвета текста.
Совместимые браузеры: Chrome, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
Автор
- Стас Мельников
О коде
Эффект наведения для горизонтального меню
Исчезает на чистом CSS для пунктов меню братьев и сестер при наведении курсора.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: —
Автор
- Габриэль Ви
О коде
Вложенная выпадающая навигация только для CSS
CSS только вложенная выпадающая навигация с ARIA.
Демонстрационное изображение: полностраничная навигация вне холста
Полностраничная навигация вне холста
Пример того, как построить полноэкранную навигацию, которая существует за пределами холста экрана, переходя в представление при нажатии на опцию меню.Добавлена специя с изменением цвета фона в зависимости от наведения курсора на элемент навигации.
Сделано Калебом Варогой
17 июня 2016 г.Демонстрационное изображение: Простое круговое меню
Простое круговое меню
HTML, CSS, JavaScript простое круговое меню с социальными значками.
Сделал Николай Таланов
13 июня 2016 г.Демо-изображение: Аккордеонное меню
Аккордеонное меню
Простое аккордеонное меню с HTML, CSS и JavaScript.
Сделано Джулией Ритвельд
8 июня 2016 г.Демонстрационное изображение: Меню мобильного фильтра
Меню мобильного фильтра
Меню фильтров, созданное Антоном Ахейчанкой, преобразованное в веб-версию.
Сделано Арджуном Амгайном
1 июня 2016 г.Сделано из
- HTML / тонкий
- CSS / SCSS
- JavaScript (jquery.js)
О коде
Полноэкранное меню в стиле Flexbox
Chrome и Firefox хорошо … IE плохо, нет поддержки перехода для свойства flex.
Автор
- Дэни Сантос
О коде
Анимация выпадающего меню
Красивое выпадающее меню с анимацией.
Автор
- Карло Видек
О коде
Анимация для мобильной навигации
Мобильная навигация: анимация открытия и закрытия с использованием GSAP TweenMax и TimelineMax. По-прежнему требуется некоторая настройка перехода …
Автор
- Пермяков Алексей
О коде
Концепция навигации пользовательского интерфейса SVG
Только анимация SVG и CSS3, без библиотек анимации.
Автор
- Кайл Лавери
Сделано из
- HTML / Мопс
- CSS / SCSS
- JavaScript (jquery.js)
О коде
Раскрывающееся меню
Выпадающее меню с небольшим jQuery.
Автор
- Ариана Линн
О коде
Выпадающий
Красивое выпадающее меню.
Автор
- Майкл Леонард
Сделано из
- HTML
- CSS
- JavaScript (jquery.js)
О коде
SVG Gooey Hover Menu Концепция
Использует SVG-манипуляции с путями на основе положения мыши, чтобы «преследовать» положение пользователя.
Сделано из
- HTML
- CSS / SCSS (font-awesome.css)
- JavaScript (jquery.js)
О коде
Боковая панель навигации
Боковая панель навигации с всплывающими подсказками.
Автор
- Роб Макфадзин
Сделано из
- HTML
- CSS / SCSS
- JavaScript (jquery.js)
О коде
Полноэкранная навигация
Включает бургер с чистой CSS-анимацией, fadeIn-анимацией из animate.css, минимальным JS.
Демонстрационное изображение: меню навигации по заголовку
Меню навигации по заголовку
Заголовочное меню навигации с HTML, CSS и jQuery.
Сделано Кайл Лавери
4 февраля 2016 г.Автор
- Фелипе Эспиноза
Сделано из
- HTML
- CSS / SCSS
- JavaScript (jquery.js)
О коде
Полноэкранное меню
Меню полноэкранного режима CSS.
Демонстрационное изображение: полноэкранная оверлейная навигация Flexbox
Полноэкранная оверлейная навигация Flexbox
Полноэкранная оверлейная навигация с помощью Flexbox в HTML, CSS и jQuery.
Сделано Мирко Зоричем
8 января 2016 г.Автор
- Мохан Хадка
О коде
Детали Информация и навигация
Навигация с помощью jQuery, CSS и HTML.
Демонстрационное изображение: полноэкранное меню CSS3 + jQuery
CSS3 + полноэкранное меню jQuery
Простое, базовое и элегантное полноэкранное меню на основе CSS3 и jQuery.
Сделал Антон Петров
5 декабря 2015 г.Сделано из
- HTML
- CSS / SCSS
- JavaScript (jQuery.js)
О коде
Накладка для полноэкранной навигации
Пример наложения полноэкранной навигации с использованием flexbox.
Автор
- Саймон Гудер
Сделано из
- HTML
- CSS / SCSS
- JavaScript (jquery.js)
О коде
Циркулярное меню материалов
Необычное круглое меню.
Демо-изображение: полукруглое липкое меню
Полукруглое липкое меню
Клейкое меню с фильтрами CSS и SVG.Версия 1.
Сделано Лукасом Беббером
22 октября 2015 г.Демонстрационное изображение: Скользящее меню навигации
Скользящее меню навигации
Скользящее меню навигации по умолчанию скрыто.
Изготовил Олег Исаков
4 октября 2015 г.Демонстрационное изображение: полноэкранная навигация
4 полноэкранная навигация
4 Полноэкранная навигация с помощью HTML, CSS и jQuery.
Сделано ari
13 сентября 2015 г.Демонстрационное изображение: полноэкранная навигация
Полноэкранная навигация
CSS-анимация гамбургера взята из http: // codepen.io / designcouch / подробности / Atyop /
Сделано Маркусом Бизалом
3 сентября 2015 г.Автор
- Грэм Уилсдон
О коде
HTML, CSS и jQuery эффект плавного переключения навигации.
Демонстрационное изображение: Значок гамбургера с морфинг-меню
Значок гамбургера с морфинг-меню
Творческое меню, созданное с помощью HTML, SASS / CSS3 и JQuery.
Сделано Серджио
15 июля 2015 г.Демонстрационное изображение: выпадающая навигация
Раскрывающаяся навигация
Выпадающая навигация с HTML, CSS и JavaScript
Сделано Райаном Морром
7 июля 2015 г.Демонстрационное изображение: полноэкранная навигация с использованием SVG
Полноэкранная навигация с использованием SVG
Полноэкранная навигация с использованием SVG, HTML, CSS и jQuery.
Сделано Анасом Ашрафом
2 июля 2015 г.Автор
- BjurhagerStudios
О коде
Gooey Мобильная навигация
Классный липкий эффект, примененный к меню в мобильном стиле.jQuery и CSS переходы для анимации.
Автор
- Маркус Бизал
Сделано из
- HTML
- CSS / SCSS
- JavaScript (jquery.js)
О коде
Полноэкранная навигация
Полноэкранная навигация с HTML, CSS и JS.
Демонстрационное изображение: красочная навигация
Красочная навигация
При наведении курсора на красочную навигацию точка следует за вашим перемещением к текущему элементу. Когда вы выходите, он возвращается к активному элементу.
Сделано Льюи Хасси
4 июня 2015 г.Демонстрационное изображение: Простая мобильная навигация на JS
Простая мобильная навигация на JS
Простая мобильная навигация на JS с HTML и CSS.
Сделано Кираном Хантером
26 мая 2015 г.Автор
- Янник Баранчик
Сделано из
- HTML
- CSS / SCSS
- JavaScript / Babel (jquery.js)
О коде
Полноэкранное меню
Простое полноэкранное меню.
Демо-изображение: Explosive Menu
Explosive Menu
А, довольно взрывоопасное, меню на расстоянии одного клика. Все, что вам нужно сделать, это сказать огонь.
Сделано Харрисом Карни
17 мая 2015 г.Автор
- Тайлер Фаул
Сделано из
- HTML / Haml
- CSS / SCSS
- JavaScript (jquery.js)
О коде
Навигация вне холста Sass.
Демонстрационное изображение: решение для длинных выпадающих элементов
Решение для длинных выпадающих элементов
Проблема с длинными раскрывающимися меню? Что ж, попробуйте это простое решение с использованием JavaScript и jQuery.
Сделано Ларри Гимсом Паранганом
13 марта 2015 г.Демонстрационное изображение: Наложение полноэкранного меню
Наложение полноэкранного меню
Полноэкранное меню, демонстрирующее ваш бренд и навигацию по сайту.Создан с использованием SCSS и ванильного JS.
Сделано Ettrics
12 марта 2015 г.О коде
Выпадающее меню CSS
Полная выпадающая навигация CSS. Опускается при нажатии с помощью скрытого флажка.
Демонстрационное изображение: полноэкранное меню
Полноэкранное меню
Полноэкранное меню HTML, CSS и jQuery.
Сделано Полом ван Ойеном
6 марта 2015 г.Автор
- Вирджил Пана
О коде
Мобильное меню
HTML, CSS и jQuery эффект для мобильного меню.
Автор
- РазиТази
Сделано из
- HTML
- CSS
- JavaScript (jquery.js)
О коде
Доступное полноэкранное оверлейное меню
Достаточно доступное полноэкранное оверлейное меню, созданное с помощью jQuery и CSS.
Автор
- Луиджи Маннони
Сделано из
- HTML
- CSS / SCSS
- JavaScript (jquery.js)
О коде
Быстрое и удобное полноэкранное меню
Создан и отлажен за 5 минут, совместим с IE10 +. Может быть, не идеален для производства, но поможет вам, если вам нужно быстро работающее, адаптивное и современное меню.
Автор
- Калеб Варога
Сделано из
- HTML
- CSS
- JavaScript (jquery.js)
О коде
Полностраничная навигация вне холста
Пример того, как построить полноэкранную навигацию, которая существует за пределами холста экрана, переходя в представление при нажатии на опцию меню. Добавлена специя с изменением цвета фона в зависимости от наведения курсора на элемент навигации.
Демо-изображение: Меню боковой панели Offcanvas с поворотом
Меню боковой панели Offcanvas с поворотом
HTML, CSS и jQuery внеканальное меню боковой панели с изюминкой.
Сделано дьявольским алхимиком
13 января 2015 г.Демонстрационное изображение: Меню вне холста
Меню вне холста
Небольшое анимированное меню вне холста.
Сделано Марком Мюрреем
28 ноября 2014 г.Демо-изображение: Раскрывающееся меню «Аккордеон»
Раскрывающееся меню «Аккордеон»
HTML, CSS аккордеонное меню с jQuery. Никаких плагинов.
Сделано Агустином Ортисом
18 ноября 2014 г.Демонстрационное изображение: плоская вертикальная навигация
Плоская вертикальная навигация
Простая плоская вертикальная навигация с мульти-анимированным выпадающим меню.Также включает Font Awesome и Animate.css.
Сделано Энди Траном
18 ноября 2014 г.Автор
- Майк Рохас
О коде
Простое раскрывающееся меню
Простое раскрывающееся меню HTML и CSS.
Демонстрационное изображение: Навигация по материальному дизайну
Навигация по материальному дизайну
Страница сдвигается, открывая простую и понятную навигацию.
Сделано Льюи Хасси
30 октября 2014 г.Демонстрационное изображение: Треугольный мобильный Toggle Navigation
Треугольная мобильная переключаемая навигация с помощью HTML и CSS.
Сделано в MoKev
12 октября 2014 г.Демо-изображение: CSS3 Забавное боковое меню
CSS3 Забавное боковое меню
Забавное меню CSS3.
Сделано Wagner Moschini
1 сентября 2014 г.Автор
- Энди Тран
Сделано из
- HTML / Haml
- CSS / Менее
- JavaScript (jquery.js)
О коде
Плоская горизонтальная навигация
Плоская горизонтальная навигация, которая использует jQuery для чистого раскрывающегося меню вместе с animate.css для удобного поворота в начале.
Демонстрационное изображение: плоская вертикальная навигация
Плоская вертикальная навигация
Простая плоская вертикальная навигация с простым раскрывающимся меню.
Сделано Энди Траном
1 сентября 2014 г.Автор
- Герхард Бледунг
Сделано из
- HTML
- CSS / SCSS
- JavaScript (jquery.js)
О коде
Полноэкранное меню
Полноэкранное гамбургер-меню.
Сделано из
- HTML
- CSS
- JavaScript (bounce.js,
snap.svg)
О коде
Эффекты меню вне холста
Некоторое вдохновение для эффектов и стилей меню вне холста с использованием переходов CSS и анимации пути SVG.
Сделано из
- HTML
- CSS / SCSS
- JavaScript (jquery.js)
О коде
Круговое меню
Анимированное круговое меню.
Демо-изображение: Toggle Menu
Toggle Menu
Переключение меню с HTML, CSS и jQuery.
Сделано Yoann
16 июля 2014 г.Автор
- Thomas Wilthil
О коде
Эффекты перехода на чистом CSS для представлений вне холста
Вы, наверное, все видели стиль навигации «выдвижное меню / вне холста», ставший популярным в Facebook несколько лет назад.Есть много отличных плагинов javascript, которые предлагают эту функциональность, но я подумал, что было бы здорово попробовать сделать это с новыми интересными функциями CSS. JavaScript не требуется. — Томас Уилтил
Автор
- Николас М. Смит
Сделано из
- HTML
- CSS / SCSS
- JavaScript (jquery.js)
О коде
CSS Off Canvas Menu
Еще одно меню вне холста с использованием флажка для активной мобильной навигации.
Демонстрационное изображение: Боковое аккордеонное меню
Боковое аккордеонное меню
HTML, CSS, боковое меню jQuery.
Сделано Бенджамином
18 апреля 2014 г.Демонстрационное изображение: фиксированное всплывающее меню / навигация вне холста
Фиксированное всплывающее меню / навигация вне холста
Адаптивное фиксированное меню, которое всегда под рукой.
Сделано Колином
3 апреля 2014 г.Автор
- Эрик Садовски
Сделано из
- HTML
- CSS
- JavaScript (jquery.js)
О коде
Раскрывающееся меню
Контекстное меню — это чистый CSS. В меню переключения используется минимальный объем JavaScript, но он будет постепенно ухудшаться, поскольку в нем используется только JavaScript для закрытия меню, когда пользователь щелкает вне меню.
Автор
- Нильс Ван Лимберген
Сделано из
- HTML
- CSS / SCSS
- JavaScript (jquery.js)
О коде
Всплывающее окно круговой навигации
Полная круговая анимированная навигация в CSS.Идеально подходит для мобильных устройств. На основе круговой навигации codrops.
Демонстрационное изображение: Анимированное меню
Анимированное меню
Простое полноэкранное меню.
Сделано Уной Кравец
31 января 2014 г.О коде
Выпадающее меню UI
Выпадающее меню на чистом CSS.
Автор
- Лего гриб
О коде
Сенсорное устройство Jelly Menu Concept
Концепция меню желе сенсорного устройства с HTML, CSS и JavaScript.
Демонстрационное изображение: Вертикальное двухкоординатное меню
Вертикальное двухуровневое меню с использованием jQuery и CSS3
Элегантное вертикальное меню-гармошка для вашего следующего веб-сайта / приложения. В заголовках используется значок шрифта Font Awesome. В демонстрации использовались градиенты, переходы и тени CSS3 наряду с минималистичным использованием jQuery для перемещения списков ссылок.
Сделано thecodeplayerАвтор
- Рэйчел Смит
О коде
Меню круговых ссылок
Адаптивное меню круговых ссылок.
Автор
- Карл Роселл
О коде
Горизонтальное меню
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
отзывчивый: да
Зависимости: font-awesome.css
Автор
- Мэтт Хойланд
О коде
Мобильное меню отказов
Анимация меню с HTML, CSS и jQuery.
Автор
- Сара Суейдан
Сделано из
- HTML
- CSS
- JavaScript (classie.js)
О коде
Круговая навигация с CSS
Учебное пособие по созданию круговой навигации с помощью преобразований CSS.
Автор
- Оливер Кноблич
Сделано из
- HTML / Haml
- CSS / SCSS
- JavaScript (jquery.js)
О коде
Flexbox Off Canvas Menu
Легкий, простой, легкий в использовании.
Сделано из
- HTML
- CSS / МЕНЬШЕ
- JavaScript (jquery.js)
О коде
Раскрывающееся меню
Это простое раскрывающееся меню, созданное с использованием несортированных списков и переходов CSS3.
О коде
Меню вне холста с анимированными ссылками
Простая мобильная навигация вне холста с отложенной анимацией ссылок. Ссылки имеют простой эффект перехода: они появляются справа налево при переключении навигации. Но анимация происходит по цепочке, когда ссылки анимируются одна за другой.Это делается путем добавления задержки перехода к каждой ссылке.
Сделано из
- HTML
- CSS
- JavaScript (jquery.js,
jquery.menu-aim.js)
О коде
Мега раскрывающийся список
Отзывчивый и простой в настройке мега-раскрывающийся список.
Автор
- Droidadda Inc
Сделано из
- HTML
- CSS
- JavaScript (jquery.js)
О коде
Адаптивное мега меню
Адаптивное мега меню для мобильного просмотра.
Автор
- Калпеш Сингх
Сделано из
- HTML
- CSS
- JavaScript (jquery.js)
О коде
Адаптивное мега меню
Адаптивное мега меню с флексбоксом.
Автор
- Майк Торосян
Сделано из
- HTML
- CSS
- JavaScript (jquery.js)
О коде
Sexy Flexy Mega Меню
Я увидел гифку этого меню стилей на странице Scout на Dribbble и решил попробовать его. Я подумал, что было довольно круто добавить некоторую тонкую анимацию в активное меню, и я также хотел немного использовать flexbox, чтобы помочь в укладке. это из.- Майк Торосян
Автор
- Арджун Амгаин
Сделано из
- HTML
- CSS
- JavaScript (jquery.js)
О коде
Адаптивное мега меню
Адаптивное мега-меню с блогом, изображениями и выпадающим списком.
Сделано из
- HTML
- CSS / SCSS (фундамент.css)
- JavaScript (jquery.js, foundation.js)
О коде
Выпадающее меню Mega Menu с Foundation 5
Мега-меню (большая двумерная раскрывающаяся панель) группирует параметры навигации, чтобы исключить прокрутку и использовать типографику, значки и всплывающие подсказки для объяснения выбора пользователей.
Меню, виджеты пользовательского интерфейса Webix Docs
Ссылка API
Обзор
Выпадающее меню, относящееся к пользовательскому интерфейсу Меню наследуется от списка и позволяет пользователям выбирать необходимый элемент из списка сгруппированных элементов (подменю).Каждый элемент подменю может запускать собственное подменю.
Динамическое подменю становится видимым, только когда вы наводите указатель мыши на соответствующий элемент главного меню (в событии ‘onMouseOver’), и скрывается, как только вы убираете указатель мыши («onMouseOut»).Инициализация
Объект меню хранится в свойстве data .
webix.ui ({ view: "меню", id: "my_menu", subMenuPos: "право", layout: "y", data: [// данные меню {value: "Перевести... ", подменю: [" Английский "," Славянский ... "," Немецкий "]}, {$ template: "Separator"}, {значение: «Опубликовать ...», подменю: [«Facebook», «Google+», «Twitter»]} ], тип:{ подпись: истина, высота: 50 } });
Связанный образец: Основное меню
Конфигурация подменю может включать:
- subMenuPos (строка) — устанавливает положение выпадающих подменю, которые будут появляться при наведении курсора мыши;
- submenuConfig (объект) — задает общую конфигурацию для всех подменю в этом меню независимо от уровня их вложенности;
- layout (string) — устанавливает расположение пунктов меню: x (по умолчанию) для горизонтального меню, y для вертикального;
- $ template (строка) — флаг, обозначающий разделитель между группами пунктов меню.Возможные типы:
- «Разделитель» — серая разделительная линия;
- «Разделитель» — пустой элемент с белым фоном, который не меняется при наведении курсора.
- тип — объект, содержащий настройку пунктов меню, а именно:
- subign (логический) — устанавливает стрелку для элемента, содержащего подменю;
- высота и ширина (количество) каждого элемента;
- openAction (строка) — изменяет способ открытия подменю — «щелчок» .Если установлено, сначала нужно щелкнуть элемент меню, чтобы разрешить открытие и скрытие подменю для событий «onMouseOver» и «onMouseOut» .
Чтобы скрыть подменю, вам нужно щелкнуть где-нибудь за пределами меню; - шаблон — (строка, функция) — правила представления данных. См. Подробности в статье о шаблонах данных;
- данные (объект) — желаемый формат встроенных данных. Подробнее см. Статью Загрузка данных
- autowidth — (логическое значение) регулирует ширину раскрывающихся подпунктов в соответствии с длиной их текста, по умолчанию false
Связанный образец: Отображение меню при щелчке мышью (раскрытие при наведении отключено)
Работа с пунктами меню
Настройка пунктов меню
Элемент меню / подменю может быть текстовым элементом , включая тот, который запускает собственное подменю и любой компонент Webix , указанный идентификатором.
Пункты меню хранятся в массиве данных , каждый пункт является объектом. Элементы подменю хранятся в массиве подменю или данных . Каждый пункт меню может иметь следующие атрибуты:
- id — id товара, если не указан, то ему присваивается автоматически сгенерированный;
- значение — определяет текстовое значение элемента;
- href — определяет ссылку на товар;
- config — определяет конфигурацию всплывающего окна дочернего подменю (если есть).Конфигурация отменяет конфигурацию, определенную в submenuConfig;
- значок — устанавливает оранжевый информационный кружок, уведомляющий о количестве новых действий для этого пункта меню (например, сообщений).
Самый простой способ определить пункты меню — передать их в виде простого массива:
{view: "menu", data: ["Google", "Facebook", "Twitter"]}
Или ассоциативный:
{вид: "меню", данные: [ {id: 1, value: "Google"}, {id: 2, value: "Facebook"}, {id: 3, значение: "Twitter"} ]}
Ссылки в пунктах меню
Каждый элемент меню и подменю может быть снабжен ссылкой , указанной в объекте данных с помощью атрибутов href и target (необязательно):
вид: "меню", данные:[ {id: "1", значение: "Имитация Спенсера", href: "# verse1", target: "_ blank"}, {id: "2", значение: "Времена года", href: "# verse2"} ]
Если не указано, цель будет установлена как пустая строка.
Связанный образец: Меню hrefs
Значки в пунктах меню
Значки добавляют информационные круги к пунктам меню с количеством сущностей, которые вы хотите связать с тем или иным элементом (например, сообщениями):
вид: "меню", данные:[ {id: "1", value: "Translations", badge: "1"}, {id: "2", значение: "Posts", значок: "12"}, {id: "3", значение: "Info", значок: "24"} ]
Связанный образец: Меню со значками
Разделители в меню
Чтобы отделить одну группу элементов от другой в вертикальном меню, используйте свойство $ template с одним из возможных значений:
- «Разделитель» — добавляет горизонтальный интервал между пунктами меню;
- «Разделитель» — добавить горизонтальную серую линию между пунктами меню.
Разделитель в вертикальном меню
вид: "меню", layout: "y", данные:[ {id: "1", значение: "Переводы", значок: "qrcode", значок: 20}, {id: "2", значение: "Сообщения", значок: "file-word-o", значок: 3}, {$ template: "Spacer"}, {id: "3", значение: "Help", icon: "support"}, ]
Связанный образец: вертикальное меню
Разделитель в вертикальном меню
вид: "меню", layout: "y", данные:[ {value: "Перевести... "}, {значение: «Опубликовать ...», подменю: [«Facebook», «Google+», «Twitter»]}, {$ template: "Separator"}, {значение: "Информация"} ]
Связанный образец: Основное меню
Подменю настройки
Элементы подменю могут быть установлены как массив значений :
{id: "2", значение: "Translate ...", подменю: ["Английский", "Славянский", "Немецкий"]},
Или как массив объектов меню :
{id: "1.2 », значение:« Славянский ... », подменю: [ {id: "1.2.1", значение: "Белорусский"}, {id: "1.2.2", значение: "Russian"}, {id: "1.2.3", значение: "Ukrainian"} ]}
Любое вложенное подменю (всплывающее окно) можно настроить отдельно с помощью атрибута config его родительского элемента:
вид: "меню", submenuConfig: { ширина: 400 }, данные:[ {id: "2", значение: "Custom ...", config: { ширина: 500, на:{ onItemClick: function (id) { webix.сообщение («Щелчок по подменю:» + id); } } }, подменю: [«Facebook», «Google+», «Twitter»] } ]
Эта конфигурация переопределяет общую конфигурацию для подменю, определенных в submenuConfig.
Связанный образец: Меню: Настройка подменю
Автоматическая установка ширины подменю
Чтобы автоматически изменять ширину подменю в соответствии с длиной их меток, используйте свойство autowidth с истинным значением в конфигурации меню:
webix.ui ({ контейнер: "areaA", view: "меню", autowidth: true, данные:[ {id: "1", значение: "Short ...", подменю: ["FB", "G +", "TW"]}, {id: "2", значение: "Medium ...", подменю: [«Facebook», «Google+», «Twitter»]}, ... ] });
Связанный образец: Автоматическая ширина для подменю
Использование других виджетов в качестве пунктов меню
Параметр подменю может также указывать на всплывающее окно, подменю, контекст или виджет окна, который был инициализирован ранее:
webix.ui ({ id: "детали1", вид: "контекст", ширина: 300, высота: 200, body: {content: "html1"} }); webix.ui ({ view: "меню", данные:[ {значение: "HTML 4", подменю: "подробности1"}, {значение: "HTML 5", подменю: "подробности2"} ] });
Связанный образец: HTML-элементы как пункты меню
Таким же образом вы можете инициализировать компонент подменю Webix отдельно, а затем указать на него в свойстве подменю меню:
webix.ui ({ view: "submenu", id: "test", data: [ {id: "1.1", значение: "English"}, {id: "1.3", значение: "German"} ] }); webix.ui ({ view: "меню", данные:[ {id: "1", значение: "Translate ...", подменю: "test"}, {id: "2", значение: "Опубликовать ..." ] });
Каждый элемент подменю может иметь свой собственный компонент подменю.
MenuBar
Меню выглядит так же, как панель инструментов, поэтому лучший способ создать строку меню — это инициализировать меню и панель инструментов в соседних столбцах:
webix.ui ({ cols: [меню, панель инструментов] });
Связанный образец: Меню на панели инструментов
Скрытие и отключение пунктов меню
Прячется
Чтобы скрыть и отобразить элемент меню, вы должны применить hideItem () и showItem () к компоненту меню, указав идентификатор элемента в качестве параметра функции.
Событием, запускающим выполнение функции, может быть изменение состояния флажка в дереве Webix, заполненном теми же данными, что и меню, при условии, что идентификатор элемента флажка = идентификатор соответствующего элемента меню.
$$ ("tree1"). AttachEvent ("onItemCheck", function (id, state) { if (state) // если отмечено $$ ("главное_меню"). hideItem (id); еще $$ ("главное_меню"). showItem (id); });
В результате отображаются только «не отмеченные» пункты меню.
Связанный образец: Скрытие пунктов меню
Отключение
Для отключения пункта меню необходимо применить к меню специальные функции disableItem () и enableItem (), передав в них идентификатор нужного пункта.Методы можно активировать, изменив состояние флажка, идентификатор которого равен идентификатору соответствующего пункта меню.
$$ ("tree1"). AttachEvent ("onItemCheck", function (id, state) { if (state) // если отмечено $$ ("главное_меню"). disableItem (id); еще $$ ("главное_меню"). enableItem (id); });
Отключение пункта меню из JSON
Вы также можете указать элемент как отключенный в конфигурации данных меню. Для этого необходимо установить атрибут disabled: true в соответствующем объекте элемента:
webix.ui ({ view: "меню", данные:[ {id: "1", значение: "Перевести ...", подменю: [ {id: "1.1", значение: "English"}, {id: "1.2", значение: "Slavic ...", подменю: [ {id: "1.2.1", значение: "Белорусский"}, {id: "1.2.2", значение: "Russian", disabled: true}, {id: "1.2.3", значение: "Ukrainian"} ]} ]} ] });
По сути, отключение и включение выполняется через классы CSS , поэтому элементы меню получают шаблон , который помогает отображать нормальный и отключенный элемент по-разному:
вид: "меню", template: function (obj) { если (obj.отключен) вернуть "" + obj.value + ""; return obj.value; }
Связанный образец: Отключение пунктов меню
Обработка событий с помощью пунктов меню и подменю
Доступ ко всем пунктам меню и подменю можно получить по их идентификаторам.
1. К любому элементу можно получить доступ напрямую с помощью метода getMenuItem (), который принимает идентификатор элемента в качестве параметра и возвращает объект элемента:
// получение значения пункта меню по его ID $$ ('меню1').getMenuItem (id) .value;
Связанный образец: Основное меню
2. В то же время элементы меню могут быть получены через объект подменю, возвращаемый методом getSubMenu () для элемента с указанным идентификатором.
Если для элемента нет подменю — будет возвращен объект вызывающего компонента.var menu = $$ ("menu1"). GetSubMenu (id); var item = menu.getItem (id) .value;
Связанный образец: HTML-элементы как пункты меню
Оба метода могут использоваться в любом из внутренних событий меню , например, событий щелчка:
- onMenuItemClick — срабатывает при щелчке по всем пунктам меню независимо от уровня иерархии.Игнорирует отключенные элементы;
- onItemClick — стандартное событие, которое срабатывает при нажатии любого элемента того же уровня иерархии. Также срабатывает для отключенного предмета.
Общий обработчик onMenuItemClick
вид: "меню", данные:[...], на:{ onMenuItemClick: function (id) { webix.message ("Щелкните:" + this.getMenuItem (id) .value); } }
Связанный образец: Основное меню
Обработчик onItemClick для конкретного подменю
вид: "меню", данные:[ {id: "1", значение: "Custom... ", config: { ширина: 250, on: {onItemClick: function (id) { webix.message («Щелчок по подменю:» + id); }} }, подменю: {...} } ]
Связанный образец: Настройка подменю
Статьи по теме
Вернуться наверх
— Веб-технологии для разработчиков
Элемент HTML
этикетка
- Название меню,отображаемое пользователю.Используется во вложенных меню,чтобы предоставить метку,через которую можно получить доступ к подменю.Должен быть указан только в том случае,если родительский элемент-
в состоянииконтекстного меню. тип
- Этот атрибут указывает тип объявляемого меню и может принимать одно из двух значений.
контекст
:указывает состояниевсплывающего меню,которое представляет группу команд,активированных через другой элемент.Это может быть как меню кнопок,на которое ссылается атрибутmenu
элемента,или как контекстное меню для элемента с атрибутом
contextmenu
.Это значение используется по умолчанию,если атрибут отсутствует и родительский элемент также является элементом
.панель инструментов
:Указывает на состояниепанели инструментов,которое представляет собой панель инструментов,состоящую из серии команд для взаимодействия с пользователем.Это может быть неупорядоченный список элементовили,если элемент не имеет дочерних элементов
,содержимое потока,описывающее доступные команды.Это значение используется по умолчанию,если атрибут отсутствует.
Примечания по использованию
Элементы
и
представляют собой неупорядоченный список элементов.Ключевое отличие состоит в том,что
в основном содержит элементы для отображения,тогда как
предназначен для интерактивных элементов,с которыми можно работать.Меню HTML можно использовать для создания контекстных меню(обычно активируемых щелчком правой кнопкой мыши по другому элементу)или панелей инструментов.
Контекстные менюсостоят из элемента
,который содержит элементов для каждой выбираемой опции в меню,
элементов для подменю в меню и
элементов для разделительные линии для разделения содержимого меню на разделы.Затем контекстные меню присоединяются к элементу,из которого они активируются,используя либо атрибутcontextmenu ассоциированного элемента,либо,для активируемых кнопками меню,прикрепленных к элементам,атрибут
menu
.Меню панели инструментовсостоят из элемента
,содержимое которого описывается одним из двух способов:либо как неупорядоченный список элементов,представленных элементами (каждый из которых представляет команду или параметр,который может использовать пользователь)или(если нет элементов
)поток содержимого,описывающий доступные команды и параметры.
Этот элемент объявлен устаревшим в HTML4,но повторно представлен в HTML5.1 и стандарте жизни HTML.В этом документе описывается текущая реализация Firefox.Тип «список»,скорее всего,изменится на «панель инструментов» в соответствии с HTML5.1.
Примеры
HTML
с контекстным меню->
Щелкните правой кнопкой мыши,чтобы увидеть настроенное контекстное меню<час/> CSS
div{ширина:300 пикселей;высота:80 пикселей;цвет фона:светло-зеленый;}
Результат
Кнопки меню еще не реализованы ни в одном из известных браузеров.Атрибут
типа
в элементетеперь устарел. HTML
<час/> Результат
Панель инструментов
Меню панели инструментов еще не реализовано ни в одном из известных браузеров.
HTML
Результат
Технические характеристики
Совместимость с браузером
См.
границ внутри панели навигации, добавьтеborder-bottom
ко всем элементам - , кроме
поскольку они будут занимать всю ширину, доступную при отображении как блочные элементы.
Результат будет тот же, что и в нашем предыдущем примере:
Пример
ул
{
тип-стиль-список: нет;
маржа: 0;
отступ: 0;
ширина: 60 пикселей;
}
ли
а
{
дисплей: блок;
}
Попробуй сам »
Примеры вертикальной панели навигации
Создайте базовую вертикальную панель навигации с серым цветом фона и
изменить цвет фона ссылок, когда пользователь наводит указатель мыши на
их:
Пример
ul {
list-style-type: none;
маржа: 0;
отступ: 0;
ширина:
200 пикселей;
цвет фона: # f1f1f1;
}
li a {
дисплей:
блок;
цвет: # 000;
отступ: 8 пикселей 16 пикселей;
текст-оформление: нет;
}
/ *
Изменить цвет ссылки при наведении * /
li a: hover {
цвет фона: # 555;
цвет: белый;
}
Попробуй сам »
Активная / текущая ссылка для навигации
Добавьте «активный» класс к текущей ссылке, чтобы пользователь знал, на какой странице он находится:
Центральные ссылки и добавить границы
Добавьте text-align: center
к