Как создать вертикальное меню
schoolsw3.com
САМОСТОЯТЕЛЬНОЕ ОБУЧЕНИЕ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ
❮ НазадВперед ❯
Узнать, как создать вертикальное меню с помощью CSS.
Вертикальное меню
ГлавнаяСсылка 1Ссылка 2Ссылка 3Ссылка 4
Редактор кода »
Как создать вертикальную группу кнопок
Шаг 1) Добавить HTML:
Пример
<div>
<a href=»#»>Главная</a>
<a href=»#»>Ссылка 1</a>
<a href=»#»>Ссылка 2</a>
<a href=»#»>Ссылка 3</a>
<a href=»#»>Ссылка 4</a>
</div>
Шаг 2) Добавить CSS:
Пример
.vertical-menu {
width: 200px; /* Установите ширину, если хотите */
}
.vertical-menu a {
background-color: #eee; /* Серый цвет фона */
color: black; /* Черный цвет текста */
display: block; /* Сделайте так, чтобы ссылки располагались друг под другом */
padding: 12px; /* Добавить немного отступа */
text-decoration: none; /* Удалить подчеркивание из ссылок */
}
. vertical-menu a:hover {
background-color: #ccc; /* Темно-серый фон на наведении курсора мыши */
}
.vertical-menu a.active {
background-color: #4CAF50; /* Добавить зеленый цвет «активная/текущая» ссылки */
color: white;
}
Редактор кода »
Вертикальное прокрутка меню
ГлавнаяСсылка 1Ссылка 2Ссылка 3Ссылка 4Ссылка 5Ссылка 6Ссылка 7Ссылка 8Ссылка 9Ссылка 10
Установите определенный height
и добавить свойство overflow
, если вы хотите меню вертикальной прокрутки:
Пример
.vertical-menu {
width: 200px;
height: 150px;
overflow-y: auto;
}
Редактор кода »
Совет: Проверьте наши учебник Как сделать — Боковую панели навигации чтобы узнать, как создать фиксированную, полноразмерную боковую навигацию.
❮ НазадВперед ❯
ВЫБОР ЦВЕТА
ТОП Учебники
HTML УчебникCSS Учебник
JavaScript Учебник
КАК Учебник
SQL Учебник
Python Учебник
W3. CSS Учебник
Bootstrap Учебник
PHP Учебник
Java Учебник
C++ Учебник
jQuery Учебник
ТОП Справочники
HTML СправочникCSS Справочник
JavaScript Справочник
SQL Справочник
Python Справочник
W3.CSS Справочник
Bootstrap Справочник
PHP Справочник
HTML Цвета
Java Справочник
Angular Справочник
jQuery Справочник
ТОП Примеры
HTML ПримерыCSS Примеры
JavaScript Примеры
КАК Примеры
SQL Примеры
Python Примеры
W3.CSS Примеры
Bootstrap Примеры
PHP Примеры
Java Примеры
XML Примеры
jQuery Примеры
Форум | О SchoolsW3
SchoolsW3 оптимизирован для бесплатного обучения, проверки и подготовки знаний. Примеры в редакторе упрощают и улучшают чтение и базовое понимание. Учебники, ссылки, примеры постоянно пересматриваются, чтобы избежать ошибок, но не возможно гарантировать полную правильность всего содержания.
Авторское право 1999- Все права защищены.
SchoolsW3 работает на площадке от SW3.CSS.
Создаем вертикальное меню на CSS – Zencoder
Продолжаем изучение CSS и сегодня приступим к построению вертикального меню.
Такие меню очень популярны и без них не обходится каждый второй сайт. Статей по созданию подобной навигации написано немало, но меня данный факт волнует мало. Моя задача — разобраться в принципе построения подобного меню и возможность сделать его самому, на коленках за пару минут. В действительности все просто, даже очень просто.
Созданное в этой статье вертикальное меню будет далеко по своим внешним эстетическим данным от совершенства. Но это и неважно — важен сам принцип, механизм построения и функционирования подобной навигации. А всякие фантики-бантики можно навесить всегда, было бы желание.
Механизм действия и построения такого меню основан на одном единственном CSS-свойстве —
, а точнее на его значениях — 1
display
и 1
display: block
.1
display: none
В этой статье будет создаваться простое вертикальное меню, в котором подменю размещается сбоку от основного меню. Существует более сложный вариант вертикального меню, в котором подменю размещается внутри основного.
Такая навигация называется
и принцип его создания будет рассмотрен позже.1
меню-аккордеон
C чего же мы начнем? С построения обычного маркированного списка, пунктами которого будут ссылки. Списку зададим класс с именем
, так как он нам понадобиться в дальнейшем:1
menu
<ul> <li> <a href="#">Punkt 1</a> </li> <li> <a href="#">Punkt 2</a> </li> <li> <a href="#">Punkt 3</a> </li> <li> <a href="#">Punkt 4</a> </li> <li> <a href="#">Punkt 5</a> </li> </ul>
Созданное только что меню будет внешним, а внутри него (точнее внутри его пунктов) мы поместим еще одно меню. Получиться одно меню, вложенное в другое (помните уроки HTML?).
То есть, у нас есть пять пунктов внешнего меню — вот мы и вложим в каждый из них еще одно меню, перед ссылкой. Ссылка будет исполнять роль переключателя, который будет переводить значение свойства
из none в 1
display
и наоборот.1
block
В итоге получиться пять подменю, для каждого из которых мы пропишем один класс —
. Этот класс нам также потребуется в дальнейшем:1
sub-menu
<ul> <li> <a href="#">Punkt 1</a> <ul> <li> <a href="#">Punkt 1-1</a> </li> <li> <a href="#">Punkt 1-2</a> </li> <li> <a href="#">Punkt 1-3</a> </li> </ul> </li> <li> <a href="#">Punkt 2</a> <ul> <li> <a href="#">Punkt 2-1</a> </li> <li> <a href="#">Punkt 2-2</a> </li> <li> <a href="#">Punkt 2-3</a> </li> </ul> </li> <li> <a href="#">Punkt 3</a> <ul> <li> <a href="#">Punkt 3-1</a> </li> <li> <a href="#">Punkt 3-2</a> </li> <li> <a href="#">Punkt 3-3</a> </li> </ul> </li> <li> <a href="#">Punkt 4</a> <ul> <li> <a href="#">Punkt 4-1</a> </li> <li> <a href="#">Punkt 4-2</a> </li> <li> <a href="#">Punkt 4-3</a> </li> </ul> </li> <li> <a href="#">Punkt 5</a> <ul> <li> <a href="#">Punkt 5-1</a> </li> <li> <a href="#">Punkt 5-2</a> </li> <li> <a href="#">Punkt 5-3</a> </li> </ul> </li> </ul>
Все — каркас будущего вертикального меню готов и больше мы его трогать не будем. Остальные действия будем выполнять только с помощью CSS. Для начала создадим базовые стили, чтобы придать нашему меню хоть какой-то вид:
*{ margin: 0; padding: 0; } a{ text-decoration: none; } ul{ list-style-type: none; } .menu{ margin: 30px 0 0 30px; width: 100px; }
Здесь мы обнуляем
и 1
margin
для всех элементов, в том числе и 1
padding
; убираем маркер у пунктов меню; убираем подчеркивание у ссылок.
Для внешнего списка с классом menu задаем отступ сверху и слева, чтобы не прилипал к границам окна браузера и устанавливаем фиксированную ширину в
.1
100px
Дальше форматируем пункты меню:
.menu li{ position: relative; line-height: 20px; background-color: #ccc; margin-bottom: 1px; }
Ставим высоту каждого элемента равной 20px и выравниваем текст внутри него по центру вертикали; задаем фоновый цвет для них же, чтобы можно было различать каждый из пунктов на фоне окна браузера; делаем нижний
в 1px, чтобы элементы 1
margin
не сливались между собой и были похожи на пункты меню.
Последний шаг — устанавливаем для относительное позиционирование, так как в дальнейшем будем размещать подменю относительно этого элемента.
Далее чисто косметические правила для ссылок, находящихся внутри внешнего меню — размер шрифта (кегль) и цвет текста:
.menu li a{ font-size: 16px; color: #000; }
Теперь приступаем к самому интересному — стилизации подменю. Для начала зададим его ширину (пусть будет чуть меньше ширины внешнего списка):
.sub-menu{ width: 90px; }
Затем установим для подменю абсолютное позиционирование для того, чтобы сместить его вправо на значение, равное ширине внешнего списка и “прилепить” кверху каждого из элементов .
И самое главное — скроем его отображение в браузере через правило
. В результате код будет выглядеть следующим образом:1
display: none
. sub-menu{ width: 90px; position: absolute; left: 100px; top: 0; display: none; }
Немного стилизуем пункты меню и ссылки в подменю. Для каждого пункта подменю устанавливаем цвет фона, чтобы отличать подменю от основного меню. И цвет ссылок по той же причине:
.sub-menu li{ background-color: #aaa; } .sub-menu li a{ color: #fff; }
Заключительный код, который заставляет наше меню работать именно так, как задумано. То есть, этим мы говорим браузеру присвоить свойству
значение 1
display
при наведении мыши на ссылку во внешнем списке:1
block
.menu li:hover .sub-menu{ display: block; }
В результате подменю отобразиться (браузер сгенерирует его). Изначально в коде было прописано для него
. То есть, для браузера такого подменю не существовало и в DOM-модели документа элемент 1
display: none
с классом
отсутствовал.1
sub-menu
Так как этому подменю задано абсолютное позиционирование со смещением вправо на
и вверх на 1
100px
, то оно поместиться точно справа вверху от своего родителя — пункта меню внешнего списка.
В принципе, на этом уже все сказано. Основной принцип вертикального меню показан и создан. Остальное — уже дело техники, если нужно придать ему нужный вид. На закуску пример нашего меню в обычном состоянии:
И меню, когда наведена мышка на один из пунктов меню и справа появляется подменю, соответствующее этому пункту:
На этом все.
css
Как создать вертикальное меню
❮ Назад Далее ❯
Узнайте, как создать вертикальное меню с помощью CSS.
Вертикальное меню
Главная страница Ссылка 1 Ссылка 2 Ссылка 3 Ссылка 4
Попробуйте сами »
Как создать вертикальную группу кнопок
Шаг 1) Добавьте HTML:
Пример
Шаг 2) Добавьте CSS:
Пример
.vertical-menu {
ширина: 200 пикселей; /* Установите ширину, если хотите */
}
.vertical-menu a {
background-color: #eee;
/* Серый цвет фона */
color: black; /* Черный текст
цвет */
отображение: блок; /* Сделать так, чтобы ссылки отображались ниже
друг друга */
padding: 12px; /* Добавляем отступы */
украшение текста: нет; /* Удалить подчеркивание из ссылок */
}
.vertical-menu a:hover
{
фоновый цвет: #ccc; /*
Темно-серый фон при наведении мыши */
}
. vertical-menu a.active {
background-color: #04AA6D; /* Добавляем зеленый цвет к ссылке «активный/текущий»
*/
цвет: белый;
}
Попробуйте сами »
Меню вертикальной прокрутки
Главная Ссылка 1 Ссылка 2 Ссылка 3 Ссылка 4 Ссылка 5 Ссылка 6 Ссылка 7 Ссылка 8 Ссылка 9Ссылка 10
Задайте конкретную высоту
и добавьте свойство overflow
, если хотите меню с вертикальной прокруткой:
Пример
.vertical-menu {
width: 200px;
высота: 150 пикселей;
переполнение-у: авто;
}
Попробуйте сами »
Совет: Ознакомьтесь с нашим учебным пособием How To-Side Navigation, чтобы узнать, как создать фиксированную боковую навигацию во всю высоту.
❮ Предыдущий Следующий ❯
ВЫБОР ЦВЕТА
Лучшие учебники
Учебник по HTMLУчебник по CSS
Учебник по JavaScript
Учебник How To
Учебник по SQL
Учебник по Python
Учебник по W3. CSS
Учебник по Bootstrap
Учебник по PHP
Учебник по Java
Учебник по C++
Учебник по jQuery
800
Справочник по HTML
Справочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3.CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery
Основные примеры
Примеры HTMLПримеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
FORUM | О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания. Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования, куки-файлы и политика конфиденциальности.
Copyright 1999-2023 Refsnes Data. Все права защищены.
W3Schools работает на основе W3.CSS.
Вертикальная панель навигации CSS
❮ Предыдущая Следующая ❯
Вертикальная панель навигации
- Главная
- Новости
- Связаться с
- О
Чтобы построить вертикальную панель навигации, вы можете стилизовать элементы внутри списка, в дополнение к коду с предыдущей страницы:
Пример
ли а
{
дисплей: блок;
ширина: 60 пикселей;
}
Попробуйте сами »
Объяснение примера:
-
display: block;
— Отображение ссылок в виде блочных элементов делает все область ссылки кликабельна (не только текст), и это позволяет нам указать ширину (и отступы, поля, высота и т. д., если хотите) -
ширина: 60 пикселей;
— Блочные элементы занимают всю доступную по умолчанию ширину. Мы хотим указать ширину 60 пикселей
Вы также можете установить ширину
- и удалить ширину ,
так как они будут занимать всю доступную ширину при отображении в виде блочных элементов.
Это даст тот же результат, что и в предыдущем примере:
- Домашний
- Новости
- Связаться с
- О
- Домашняя страница
- Новости
- Связаться с
- О
- или для центрирования ссылок.
Добавьте свойство
border
в- , чтобы добавить границу вокруг панели навигации. Если вы также хотите
границы внутри панели навигации, добавьте
- , кроме
последний:
- Дом
- Новости
- Связаться с
- О
Пример
ul {
граница: 1 пиксель сплошная # 555;
}li {
text-align: center;
нижняя граница: 1px сплошная #555;
}li:последний ребенок {
нижняя граница: нет;
}Попробуйте сами »
Полноразмерная фиксированная вертикальная панель навигации
Создание полноразмерной «липкой» боковой панели навигации:
Пример
ul {
list-style-type: none;
маржа: 0;
заполнение: 0;
ширина: 25%;
background-color: #f1f1f1;
высота: 100 %; /* Полная высота */
position: fixed; /* Сделайте так, чтобы он зависал даже при прокрутке */
переполнение: авто; /* Включить прокрутку, если в боковом меню слишком много контента */
}Попробуйте сами »
Примечание: Этот пример может некорректно работать на мобильных устройствах.
❮ Предыдущий Следующий ❯
ВЫБОР ЦВЕТА
Лучшие учебники
Учебник по HTML
Учебник по CSS
Учебник по JavaScript
Учебник How To
Учебник по SQL
Учебник по Python
Учебник по W3.CSS
Учебник по Bootstrap
Учебник по PHP
Учебник по Java
Учебник по C++
Учебник по jQuery800 Справочник по HTML
Справочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3.CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQueryОсновные примеры
Примеры HTML
Примеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQueryFORUM | О
W3Schools оптимизирован для обучения и обучения.
border-bottom
ко всем элементам - , кроме
последний:
Пример
ул
{
тип стиля списка: нет;
маржа: 0;
заполнение: 0;
ширина: 60 пикселей;
}
ли
а
{
дисплей: блок;
}
Попробуйте сами »
Примеры вертикальной панели навигации
Создайте базовую вертикальную панель навигации с серым цветом фона и изменить цвет фона ссылок, когда пользователь наводит курсор мыши им:
Пример
ul {
тип-стиля-списка: нет;
маржа: 0;
заполнение: 0;
ширина:
200 пикселей;
background-color: #f1f1f1;
}
li a {
дисплей:
блокировать;
цвет: #000;
отступ: 8 пикселей 16 пикселей;
украшение текста: нет;
}
/*
Изменить цвет ссылки при наведении */
li a:hover {
цвет фона: #555;
цвет: белый;
}
Попробуйте сами »
Активная/текущая навигационная ссылка
Добавить «активный» класс к текущей ссылке, чтобы пользователь знал, на какой странице он находится:
Пример
. active {
background-color: #04AA6D;
белый цвет;
}
Попробуйте сами »
Центрируйте ссылки и добавьте границы
Добавьте text-align:center
в