Выпадающие меню — CSS Framework
Выпадающие меню позволяют пользователям выбрать один из нескольких пунктов меню. Разметка такого меню предназначена для работы совместно с Яваскрипт модулем ips.ui.menu.
Использование
Меню состоит из инициирующего элемента, и самого элемента меню:
<!-- Инициализатор --> <a href='#elMyMenu_menu'>Открыть меню</a> <!-- Меню --> <ul> ... </ul>
ID меню должен быть таким же, как ID элемента инициализатора, с суффиксом _menu. Если элемент инициализатора является ссылкой, её href должен быть якорем на ID элемента меню. Это делает меню доступным, даже если Javascript отключён в вашем браузере.
Основное меню
Основное меню может иметь следующую разметку:
<ul> <li><a href='#'>Пункт 1</a></li> <li><a href='#'>Пункт 2</a></li> <li><a href='#'>Пункт 3</a></li> <li><hr></li> <li><a href='#'>Пункт 4</a></li> <li><a href='#'>Пункт 5</a></li> </ul>
Это будет отображаться следующим образом: .
ipsMenu это основной класс для элемента меню. Пункты в меню должны иметь класс ipsMenu_item, с элементом ссылки в нём. Разделитель пункта может быть добавлен путём указания пункта с классом ipsMenu_sep, содержащий элемент <hr>.
Обратите внимание, что позиционирование и стрелка добавляются автоматически, с помощью Яваскрипт модуля меню; они не должны быть указаны вручную. Стрелка может быть удалена, если это необходимо, путём добавления класса
Отключение пунктов меню
Отдельные пункты меню могут быть отключены путём добавления класса ipsMenu_itemDisabled к элементу списка: .
Обратите внимание: отключение пункта меню не полностью работоспособно; в браузерах, не поддерживающих CSS стили поведения курсора, клик по отключённом пункту в меню будет по-прежнему действителен. Убедитесь, что ваш Яваскрипт правильно взаимодействует с кликами по отключённым пунктам меню.
Размер меню
По умолчанию, меню будет иметь стандартную ширину. Дополнительный класс может быть указан в элементе меню для определения ширины меню.
- ipsMenu_auto — меню будет отображено с такой шириной, какая необходима, при этом выдерживая минимальную ширину в 200px и максимальную ширину в 500px;
- ipsMenu_narrow — 200 пикселей в ширину;
- ipsMenu_normal — 300 пикселей в ширину;
- ipsMenu_wide — 450 пикселей в ширину;
Селективные меню
Селективное меню позволяет пользователю переключаться между пунктами меню, полезно для включения/отключения настроек. Для функционирования этой возможности, должен быть использован Яваскрипт модуль.
Меню может быть селективным путём добавления класса ipsMenu_selectable. Пункт меню может быть отображён как выбранный, с помощью добавления класса ipsMenu_itemChecked к элементу списка.
Разметка для селективного меню может выглядеть следующим образом:
<ul> <li><a href='#'>Пункт 1</a></li> <li><a href='#'>Пункт 2</a></li> <li><a href='#'>Пункт 3</a></li> </ul>
Это будет отображаться следующим образом: .
Подменю
Подменю создаются путём встраивания меню друг в друга. Для этого пропишите класс ipsMenu_subItems к пункту, который должен содержать подменю, и само подменю внутри элемента. Например:
<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> <li><a href='#'>Подпунктm 3</a></li> </ul> </li> </ul>
Это будет отображаться следующим образом: .
Report Документ
Cоздание выпадающего меню на HTML и CSS просто
Автор статьи: admin
Метки: CSS / HTML / Как сделать
В этой статье мы разберём, как происходит создание выпадающего меню на HTML, CSS и JavaScript.
Также, если вы вообще не знаете как делать меню, то посмотрите статью: Меню навигации на HTML и CSS, там вы научитесь создавать простое меню навигации.
Создание горизонтального выпадающего меню:
Сперва на HTML и CSS сделаем выпадающее меню которое будет проявляться при наведении мышки, вот его HTML.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <header> <nav> <ul> <li><a href=»#»>Главная</a></li> <li>Галерея <ul> <li><a href=»#»>Машины</a></li> <li><a href=»#»>Горы</a></li> <li><a href=»#»>Компьютеры</a></li> </ul> </li> <li>О себе <ul> <li><a href=»#»>Имя</a></li> <li><a href=»#»>Аватарка</a></li> </ul> </li> </ul> </nav> </header> |
Тут всё как в обычном меню, если вы читали статью про то как сделать меню навигации, единственное что отмечу, это то, что обязательно меню должно находится в теги <nav>
, для лучшей индексации.
Теперь перейдём к CSS, но сначала мы не будем делать прям выпадающие меню, оно просто при наведении мыши, будет просто появляться, вот и всё.
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 | html, body { margin: 0; padding: 0; }
nav > ul { display: flex; margin: 0; width: 100%; background-color: green; }
nav > ul > li { margin-right: 20px; }
li { color: white; list-style: none; font-size: 20px; }
li a { color: white; text-decoration: none; }
li > ul{ display: none; position: absolute; background-color: tomato; padding: 0; }
li:hover > ul{ display: block; } |
В самом начале, мы убираем отступы со всего документа, чтобы, меню было чётко прибито ко краям страницы.
Дальше настраиваем внешний вид, делаем FlexBox и задаём отступы, самое главное, что нужно сделать, это тегам <ul>
, которые находятся внутри тега <li>
, сделать позиционирование absolute
и добавить ему свойство display: none
, что бы блок не показывался на экране.
Последнее важное изменение, это при наведении мышкой на <li>
, внутри которого есть <ul>
, он появлялся, вот что получилось.
Такое латовый вариант получился, теперь сделаем так, что бы меню выпадало с анимацией, а не просто появлялась, для этого не много изменим стили.
Примечание:
Тут покажу только те селекторы, которые изменим, а не весь CSS, так как, там добавилось не много.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | nav > ul { display: flex; margin: 0; width: 100%; height: 25px; background-color: green; }
li > ul{ position: absolute; top: 40px; visibility: hidden; opacity: 0; background-color: tomato; padding: 0; transition: 400ms; }
li:hover > ul{ visibility: visible; top: 25px; opacity: 1; } |
В первом селекторе мы добавляем высоту, чтобы было проще менять позицию, во втором, добавляем позицию top
равного 45 пикселем, также устанавливаем свойство visibility: hidden
, которое отвечает за скрытие элемента, и opacity: 0
, для прозрачности, значение ноль, означает что элемент полностью прозрачен.
В последнем селекторе который мы изменяем, который ещё отвечает за наведение мышки, убираем display
и добавляем visibility: visible
, для показа элемента, top
равный 25 пикселям и opacity: 1
, для полной не прозрачности.
Также появилось свойство transition
, для плавных переходов, мы задаём ему время перехода 400 миллисекунды.
Вывод:
В этой статье мы рассказали о создание выпадающего меню на HTML и CSS, если вам что то не понятно, то посмотрите наш учебник по HTML и CSS.
Подписываетесь на соц-сети:
Оценка:
Количество оценивших: 1
Средняя оценка: 5,00
Загрузка…
Поделится:
Пока кнопок поделиться нетТакже рекомендую:
Выпадающие меню неизбежны, когда дело доходит до разработки внешнего интерфейса. В какой-то момент вы столкнетесь с ними.
Хотя большинство фреймворков CSS автоматически делают это за вас, иногда вам просто нужно сделать это самостоятельно.
Но вопрос — как?
Для тех, кто плохо знаком с CSS или имеет базовые знания, это может показаться ловушкой. Вы можете плавать, вы можете отображать в строке, вы можете делать целую кучу вещей, но вы просто не можете заставить вещи выпадать должным образом.
Вот краткое руководство о том, как все это работает и почему оно работает, с пошаговыми примерами кода.
Или, если вам нужен окончательный рецепт кода, вы можете просто прокрутить вниз и взять его там.
Но прежде чем мы начнем, нам нужно сначала уяснить несколько концепций.
Относительное и абсолютное позиционирование в CSS — одна из тех раздражающих концепций, с которыми часто сталкиваются начинающие разработчики интерфейсов.
Все мы знаем, что он может перемещать предметы, но как он работает?
Начнем с относительно
и кода ниже:
Текст здесь
Здесь снова немного текста
При рендеринге граничная область каждого тега выглядит примерно так:
Большинство элементов по умолчанию являются блоками, что означает, что они растягиваются до края экрана.
растягиваются до самого края вашего браузера. Когда мы применяем относительное позиционирование к элементу, любые свойства координат, такие как сверху
, слева
, справа
и снизу
переместит этот элемент с того места, где он сейчас находится на экране.
Допустим, мы хотим применить относительно
к нашим тегам p
и переместить его вправо и вниз. Мы бы написали что-то вроде этого:
p { position:relative; слева: 50 пикселей; верх: 50 пикселей; }
Это приведет к следующему выводу:
Блоки p
перемещаются соответственно (50 пикселей слева и 50 пикселей сверху). Относительность его исходной точки основана на экране.
Следует отметить, что когда вы используете относительно
, это не перемещает ваши элементы из естественного потока блоков. Это означает, что если у вас есть контейнер div
вокруг ваших тегов p
и вы применяете к нему относительно
, это не приведет к сворачиванию div
.
Это приведет к перемещению юнита как единого целого. Это относительно исходного положения и будет подталкивать его в зависимости от того, куда вы хотите его направить.
Например, ваш HTML выглядит примерно так:
<дел>Текст здесь
Снова текст