Меню навигации на html и css
Содержание:
- Выпадающее меню со списком элементов на HTML
- Создание горизонтального выпадающего меню:
- Что это такое
- Просмотр сеансов посещений ВК
- Изменение высоты Navbar
- Вертикальное многоуровневое меню
- Пара слов о пунктах меню сайта
- Адаптация выпадающего html меню под мобильные устройства
- Команды в AutoCAD
- Горизонтальное меню
- Navbar — Открытие dropdown меню при наведении
- CSS
- Пример центрированного меню
- Простое вертикальное меню
- Горизонтальное выпадающее меню на всю ширину
- Проверка вводимых значений для подкатегории в зависимом выпадающем списке
- Изображения
- А теперь вертикально. Я сказал вертикально!
Выпадающее меню со списком элементов на HTML
Вебмастера и блоггеры периодически сталкиваются с проблемой создания горизонтального меню, при наведении на родительские элементы которого будут показывать дочерние элементы.
Конечно, подобную проблему можно решить многими способами, но я бы рекомендовал обходиться без дополнительного JS-кода (и jQuery).
Я считаю так — если задачу теоретически можно решить средствами HTML и CSS без применения джейквери, нужно делать это на практике. Если вы не знаете, что писать и куда нажимать — это отдельная проблема и она не должна вас останавливать. Нужно гуглить, учиться, расти, повышать свою квалификацию как верстальщика и фронтенд-разработчика — никогда не знаешь, где эти навыки пригодятся.
Давайте покажу на примере. Помните, недавно была статья о маркированных и нумерованных списках? Сейчас эти знания пригодятся, потому что именно так мы будем делать меню. Пример кода:
<ul class=»mmenuu»>
<li><a href=#>Меню №1<a>
<ul class=»ssubmenuu»>
<li><a href=#>Субменю №1 первого меню<a><li>
<ul>
<li>
<li><a href=#>Меню №2<a>
<ul class=»ssubmenuu»>
<li><a href=#>Субменю №2 второго меню<a><li>
<li><a href=#>Субменю №2 второго меню<a><li>
<ul>
<li>
<li><a href=#>Меню №3<a>
<ul class=»ssubmenuu»>
<li><a href=#>Субменю №3 третьего меню<a><li>
<li><a href=#>Субменю №3 третьего меню<a><li>
<li><a href=#>Субменю №3 третьего меню<a><li>
<ul>
<li><ul>
Первый шаг к нашему выпадающему списку в меню сделан и вот что получилось. Результат:
Мда. Пока не очень, да? Обычный список какой-то (похож на этот), ведь классы menu и submenu я использовал, а стили не написал.
Добавлю немного CSS-магии. Пропишу прямо в html-файле — в <head><style></style></head>. CSS-код:
body {
/* Убираю отступы. */
margin0px;
/* Убираю еще отступы. */
padding0px;
/* Задаю шрифт. */
font 14px ‘Verdana’;}
ul {
/* Убираю маркеры у списка*/
list-style none;
/* Делаю элементы блочными. */
display block;
/* Убираю отступы. */
margin0px;
/* Убираю еще отступы! */
padding0px;}
ulafter {
/* Делаю элементы блочными. */
display block;
/* Убираю выравнивание. */
float none;
content ‘ ‘;
clear both;}
ul.mmenuu > li {
/* Задаю выравнивание и позиционирование. */
float left;
/* Считаем координаты относительно исходного места*/
position relative;}
ul.mmenuu > li > a {
/* Делаю элементы блочными: */
display block;
/* Задаю белый цвет. */
color #fff;
/* Задаю отступ 10px. */
padding 10px;
/* Убираю форматирование*/
text-decoration none;
/* Задаю цвет. */
background-color #da570f;}
ul.mmenuu > li > ahover {
/* Задаю цвет при наведении. */
background-color #eb9316;}
ul.ssubmenuu {
position absolute;
width 240px;
top 37px;
left0px;
/* Делаю субменю скрытыми. */
display none;
/* Цвет — белый. */
background-color white;}
ul.ssubmenuu > li {
/* Блочное расположение элементов*/
display block;}
ul.ssubmenuu > li > a {
/* Делаю элементы блочными. */
display block;
/* Убираю форматирование*/
text-decoration none;
/* Задаю отступ. */
padding 10px;
/* Задаю цвет. */
color #ffffff;
/* Еще цвет. */
background-color #da570f;}
ul.ssubmenuu > li > ahover {
/* Цвет бэкграунда при наведении. */
background-color #eb9316;
/* Задаю подчеркивание*/
text-decoration underline;}
ul.mmenuu > lihover > ul.ssubmenuu {
/* Делаю элементы блочными. */
display block;}
Результат:
Ого! В жизни не видел ничего прекраснее этого минималистичного выпадающего списка. Без JavaScript и обращения к фрилансерам!
Создание горизонтального выпадающего меню:
Сперва на HTML и CSS сделаем выпадающее меню которое будет проявляться при наведении мышки, вот его HTML.
XHTML
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> |
Тут всё как в обычном меню, если вы читали статью про то как сделать меню навигации, единственное что отмечу, это то, что обязательно меню должно находится в теги , для лучшей индексации.
Теперь перейдём к CSS, но сначала мы не будем делать прям выпадающие меню, оно просто при наведении мыши, будет просто появляться, вот и всё.
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; padding; } nav > ul { displayflex; margin; width100%; background-colorgreen; } nav > ul > li { margin-right20px; } li { colorwhite; list-stylenone; font-size20px; } li a { colorwhite; text-decorationnone; } li > ul{ displaynone; positionabsolute; background-colortomato; padding; } li:hover > ul{ displayblock; } |
В самом начале, мы убираем отступы со всего документа, чтобы, меню было чётко прибито ко краям страницы.
Дальше настраиваем внешний вид, делаем FlexBox и задаём отступы, самое главное, что нужно сделать, это тегам , которые находятся внутри тега , сделать позиционирование и добавить ему свойство , что бы блок не показывался на экране.
Последнее важное изменение, это при наведении мышкой на , внутри которого есть , он появлялся, вот что получилось
Такое латовый вариант получился, теперь сделаем так, что бы меню выпадало с анимацией, а не просто появлялась, для этого не много изменим стили.
Примечание:
Тут покажу только те селекторы, которые изменим, а не весь CSS, так как, там добавилось не много.
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 { displayflex; margin; width100%; height25px; background-colorgreen; } li > ul{ positionabsolute; top40px; visibilityhidden; opacity; background-colortomato; padding; transition400ms; } li:hover > ul{ visibilityvisible; top25px; opacity1; } |
В последнем селекторе который мы изменяем, который ещё отвечает за наведение мышки, убираем и добавляем , для показа элемента, равный 25 пикселям и , для полной не прозрачности.
Также появилось свойство , для плавных переходов, мы задаём ему время перехода 400 миллисекунды.
Что это такое
Просмотр сеансов посещений ВК
Изначально довольно важно сделать оговорку на то, что процесс просмотра хроники переходов по ВКонтакте напрямую связан с базовым функционалом используемого интернет-обозревателя. По ходу статьи мы затронем исключительно популярные браузеры, так как именно ими пользуется подавляющее большинство людей
Обратите внимание на то, что в рамках статьи мы коснемся также еще одной темы связанной, со специальным функционалом «Истории ВКонтакте»
Просмотр посещений VK в Google Chrome
Интернет-обозреватель Google Chrome является самым популярным браузером на сегодняшний день, поэтому чаще всего у пользователей возникают проблемы именно с ним. Более того, на движке Chromium были разработаны и многие другие аналогичные программы, имеющие схожий интерфейс.
- Откройте веб-браузер и кликните по иконке с тремя вертикально расположенными точками в правой части панели инструментов.
Среди представленного списка разделов наведите курсор мыши на строчку с пунктом «История».
В качестве следующего действия из появившегося списка выберите одноименный раздел.
Оказавшись на странице со списком посещений, найдите строчку «Искать в истории».
В указанное текстовое поле введите полный URL-адрес сайта соц. сети ВКонтакте.
Теперь вместо обычной хроники посещений в порядке возрастания, будут отображаться исключительно зафиксированные переходы в рамках сайта ВК.
Вдобавок к сказанному, обратите внимание, что если вы авторизованы через аккаунты Гугл и у вас активирована синхронизация, то копия хроники посещений будет автоматически сохраняться на серверах. При этом не забывайте о том, что данные в разделе могут быть удалены
Просмотр посещений VK в Opera
В случае интернет-обозревателя Opera процесс просмотра хроники активности происходит несколько иным методом, но по тому же принципу, что и в Хроме. Кроме того, данные в Опере также без проблем синхронизируются с серверами.
- Запустите веб-браузер Опера и в левом верхнем углу кликните по кнопке «Меню».
Из списка разделов выберите пункт «История», кликнув по нему.
Среди элементов браузера найдите поисковое поле.
Заполните графу, используя в качестве содержимого полную версию адреса сайта ВКонтакте.
Для выхода из режима поиска материала по истории воспользуйтесь кнопкой «Выйти из поиска».
После розыска по ключевому слову вы сможете наблюдать список всех переходов по сайту VK.
На этом можно завершить процесс просмотра последних действий на сайте ВКонтакте с использованием браузера Опера.
Просмотр посещений VK в Яндекс.Браузере
Касаясь того, как в Яндекс.Браузере расположены компоненты, можно заметить, что он является неким гибридом между Оперой и Хромом. Отсюда же появляются уникальные нюансы, касательно месторасположения разыскиваемых данных.
- Открыв интернет-обозреватель от Яндекс, раскройте главное меню в правом верхнем углу окна программы.
Из предоставленного списка вам необходимо навести курсор мыши на строчку «История».
Теперь следует выбрать одноименный пункт, располагающийся вверху списка.
В правом верхнем углу открывшейся страницы найдите текстовое поле для поиска.
В указанную графу вставьте URL-адрес сайта ВКонтакте и нажмите клавишу «Enter».
Среди основного содержимого страницы вы сможете наблюдать каждый переход к социальной сети.
Если по каким-либо причинам вам потребуется очистить всю хронику обозревателя, воспользуйтесь соответствующей статьей.
Просмотр посещений VK в Mozilla Firefox
Интернет-обозреватель Мазила Фаерфокс в рамках данной статьи является самым уникальным, так как разработан на другом движке. Вследствие этой особенности проблемы зачастую возникают в тех случаях, когда пользователь решается перейти с Хрома на Firefox.
- Запустив веб-обозреватель, откройте главное меню программы в правом верхнем углу.
Среди представленных разделов выберите значок с подписью «Журнал».
Внизу дополнительного блока кликните по кнопке «Показать весь журнал».
В новом дочернем окне интернет-обозревателя «Библиотека» разыщите графу «Поиск в журнале».
Заполните строку в соответствии с полной версий адреса сайта ВКонтакте и воспользуйтесь клавишей «Enter».
В окне, расположенном ниже поля для розыска, вы можете видеть каждое посещение сайта ВК.
На этом с поиском хроники в интернет-обозревателях можно закончить.
Наиболее простой способ изменить высоту – это собрать свою сборку (например, на странице Bootstrap Customize). За высоту меню Navbar отвечает переменная .
Другой вариант – это переопределить существующие стили (CSS):
.navbar { min-height: 80px; } .navbar-brand { padding: 0 15px; height: 80px; line-height: 80px; } .navbar-toggle { /* (80px - высота кнопки 34px) / 2 = 23px */ margin-top: 23px; padding: 9px 10px !important; } @media (min-width: 768px) { .navbar-nav > li > a { /* (80px - line-height 27px) / 2 = 26.5px */ padding-top: 26.5px; padding-bottom: 26.5px; line-height: 27px; } }
Статьи, связанные с этой темой:
Вертикальное многоуровневое меню
В жизни, вертикальные многоуровневые меню выпадающие при наведении встречаются довольно редко. Хотел показать пару примеров из своего загашника, но увы не смог найти. Придется сделать . Сложного в этих меню для сайта ничего нет, типичный CSS для выпадашки.
Начнем. Для начала хтмл код. У нас добавится несколько списков ul li для следующих уровней сайта. Мой пример будет на 3 выпадающих подменю, по этому html код будет такой:
Будьте внимательны, только у третьего пункта меню есть многоуровневая выпадашка, у остальных я не делал, дабы не засорять хтмл и так его много.
Далее идут стили, они не сильно отличаются от предыдущих примеров, но все же:
Это стили для создания вертикального многоуровневого выпадающего меню вправо при наведении. Вариант с выпадашкой влево будет чуть далее. Смотрим ниже что у нас получилось на рисунке (скин кликабельный):
В режиме демо просмотра наведите на третий пункт, потом на второй, потом на первый – если хотите увидеть работу многоуровневого меню полностью.
Скачать пример
Сейчас я приведу стиль, который нужно поменять, для создания выпадашки вправо:
Нажмите, чтобы развернуть код
На рисунке я показал где он находится:
На втором рисунке можно посмотреть как работает вертикальное многоуровневое меню влево при наведении.
Разумеется, примеры меню довольно простенькие и абстрактные. Обычно верстальщику приходится делать выпадашки со сложной версткой и кучей дров, но на мой взгляд, главное правильно задать выпадающею часть, а стили для красоты меню берутся исходя с дизайна.
На этом у меня все, до новых встреч.
Советую посетить родительскую страницу https://help-wp.ru/vypadayushhee-menu/ с разными вариантами меню, или же просмотреть запись горизонтальное выпадающее меню.
Пара слов о пунктах меню сайта
При разработке интерфейсов веб-мастера опираются на результаты исследования психолога Дж. Миллера. Он выяснил, что возможности кратковременной памяти человека сильно ограничены. В среднем, каждый способен одновременно воспринимать не более 7-9 элементов в различных комбинациях: пять коротких слов, семь букв, восемь десятичных чисел и так далее.
Все, что выходит за рамки этого количества информации, проходит мимо: мозг как бы отсекает лишнее, откладывая его на потом. Если хотите создать меню сайта, элементы которого будут попадать в зону внимания пользователя, лучше всего остановиться на семи пунктах. Допустимым считается количество заголовков разделов от пяти до девяти.
Это позволит человеку быстро понять тематику ресурса, глубину раскрытия представленной информации, оценить проект с точки зрения потенциальной пользы и принять решение о дальнейшем изучении сайта.
Выше мы говорили об иерархической структуре, подразумевающей наличие гораздо большего количества пунктов. Они скрываются во вложениях второго и последующего уровней, каждый из которых тоже должен состоять не более чем из семи элементов. Другой вариант – создание второстепенного меню при помощи виджета.
Адаптация выпадающего html меню под мобильные устройства
Для того чтобы данное меню стало адаптироваться под мобильные устройства нам нужно:
-
1.Добавить дополнительный блок с кнопкой, которая будет вызывать выпадающее меню на мобильных устройствах. Для этого перед кодом вывода меню вставляем код:
PHP
<div class=»mobile-menu-button»> Меню </div>
1 <div class=»mobile-menu-button»>Меню<div> -
2.Далее нам нужно убедиться что к сайту подключена библиотека jQuery.
Более подробно о её подключении вы можете узнать в этой статье «Как подключить jQuery к сайту»
-
3.Добавить небольшой скрипт, который отвечает за вызов выпадающего меню при нажатии на соответствующую кнопку на маленьких экранах. Данный скрипт вставляем перед закрытием тега </body>
PHP
<script>
jQuery(document).ready(function($) {
$(‘.mobile-menu-button’).click(function(e) {
var $message = $(‘.new-mobile-menu’);
if ($message.css(‘left’) != ‘0px’) {
$message.css(‘left’,’0px’);
var firstClick = true;
$(document).bind(‘click.myEvent’, function(e) {
if (!firstClick && $(e.target).closest(‘.new-mobile-menu’).length == 0) {
$message.css(‘left’,’-1000px’);
$(document).unbind(‘click.myEvent’);
}
firstClick = false;
});
}
e.preventDefault();
});
});
</script>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21<script>
jQuery(document).ready(function($){
$(‘.mobile-menu-button’).click(function(e){
var$message=$(‘.new-mobile-menu’);
if($message.css(‘left’)!=’0px’){
$message.css(‘left’,’0px’);
varfirstClick=true;
$(document).bind(‘click.myEvent’,function(e){
if(!firstClick&&$(e.target).closest(‘.new-mobile-menu’).length==){
$message.css(‘left’,’-1000px’);
$(document).unbind(‘click.myEvent’);
}
firstClick=false;
});
}
e.preventDefault();
});
});
</script>
Вот, собственно говоря, и всё! Теперь осталось всё сохранить, проверить работоспособность и при необходимости внести свои правки в html и css код.
На первый взгляд кода много, но он не сложный и вы без труда сможете скорректировать его под свой сайт.
Надеюсь, что помогла вам с сознанием адаптивного выпадающего меню в html! Если статья была для вас полезной, то нажмите на кнопку одной из социальных сетей ниже чтобы поделиться ссылкой на неё. Так вы поможете мне в развитии моего проекта.
Так же заходите на мой канал YouTube, уверена, что вы найдёте там что то интересное для себя!
Успехов вам и вашим проектам! До скорых встреч в других моих статьях и видео!
С уважением Юлия Гусарь
Команды в AutoCAD
Горизонтальное меню
В предыдущем примере мы рассмотрели вертикальную панель навигации, которую чаще всего можно встретить на сайтах слева или справа от области с основным контентом. Однако меню с навигационными ссылками также часто располагается и по горизонтали в верхней части веб-страницы.
Горизонтальное меню можно создать путем стилизации обычного списка. Свойству display для элементов <li> нужно присвоить значение inline, чтобы пункты списка располагались друг за другом.
Для размещения пунктов меню по горизонтали, сначала создадим маркированный список с ссылками:
<ul id="navbar"> <li><a href="#">Главная</a></li> <li><a href="#">Новости</a></li> <li><a href="#">Контакты</a></li> <li><a href="#">О нас</a></li> </ul>
Напишем для нашего списка пару правил, сбрасывающих стиль используемый для списков по умолчанию, и переопределим пункты списка с блочных на строчные:
#navbar { margin: 0; padding: 0; list-style-type: none; } #navbar li { display: inline; }
Попробовать »
Теперь нам осталось лишь определить стилевое оформление для нашего горизонтального меню:
#navbar { margin: 0; padding: 0; list-style-type: none; border: 2px solid #0066FF; border-radius: 20px 5px; width: 550px; text-align: center; background-color: #33ADFF; } #navbar a { color: #fff; padding: 5px 10px; text-decoration: none; font-weight: bold; display: inline-block; width: 100px; } #navbar a:hover { border-radius: 20px 5px; background-color: #0066FF; }
Попробовать »
Сценарий JavaScript, с помощью которого можно изменить способ открытия выпадающих списков в десктопной версии меню Navbar (при наведении):
$(function() { function onNavbar() { if (window.innerWidth >= 768) { $('.navbar-default .dropdown').on('mouseover', function(){ $('.dropdown-toggle', this).next('.dropdown-menu').show(); }).on('mouseout', function(){ $('.dropdown-toggle', this).next('.dropdown-menu').hide(); }); $('.dropdown-toggle').click(function() { if ($(this).next('.dropdown-menu').is(':visible')) { window.location = $(this).attr('href'); } }); } else { $('.navbar-default .dropdown').off('mouseover').off('mouseout'); } } $(window).resize(function() { onNavbar(); }); onNavbar(); });
CSS
Заходим в админке блога в style.css и добавляем вот это:
#dropdown_nav { font-weight:bold; width:1100px; padding-left:5px; display:inline-block; list-style:none; border-radius:5px; border-bottom:0px solid #777; -moz-border-radius:5px; -webkit-border-radius:5px; background: #DCDCDC url(menu.png); -moz-box-shadow: 0 0 5px #888; -webkit-box-shadow: 0 0 5px#888; box-shadow: 0 0 5px #888; } #dropdown_nav li { padding:12px 0px 12px 0px; float:left; position:relative; display:inline-block; } #dropdown_nav li a { font-style:italic; font-size:15px; color:#cd5252; padding:10px 15px 10px 15px; border-right:1px solid #e3dec0; -moz-transition: background-color 0.3s 0.01s ease; -o-transition: background-color 0.3s 0.01s ease; -webkit-transition: background-color 0.3s 0.01s ease; } #dropdown_nav li a:hover { background: #81ae7c; text-decoration:none; color:#fff; } #dropdown_nav li a:active { background:#e2e2e2; } #dropdown_nav li a.first { -moz-border-radius:5px 0px 0px 5px; -webkit-border-radius:5px 0px 0px 5px; } /*#dropdown_nav li a.last { -moz-border-radius:0px 5px 5px 0px; -webkit-border-radius:0px 5px 5px 0px; }*/ #dropdown_nav ul li ul { width:161px; position:absolute; top:41px; left:-1px; border-top:2px solid #FF6766; background: #e3e1cf url(pinstriped_suit.png); -moz-box-shadow: 0 0 10px #333; -webkit-box-shadow: 0 0 10px #333; box-shadow: 0 0 10px #333; } #dropdown_nav ul li ul li { padding:0px; width:160px; } #dropdown_nav ul li ul li a { font-weight: normal; font-size:13px; display:block; border-bottom:1px solid #444; } #dropdown_nav ul li ul li a:hover { background:none; text-decoration: underline; color:#963c3c; } #dropdown_nav ul li ul li a:active { background:#333; }
Пример центрированного меню
Ниже приведено горизонтальное центрированное в данной колонке меню, в котором активизирована вторая закладка. Можно попробовать изменить размер окна браузера или страницы, чтобы убедиться в том, что меню всегда остается центрированным и рабочим.
На демонстрационной странице можно увидеть несколько вариантов оформления горизонтально центрированного меню. Любой из них можно использовать в своих проектах.
Разметка HTML
Все меню, примеры которых приводятся в данном уроке, используют простую структуру. Это обыкновенный неупорядоченный список ссылок, помещенный в элемент div.
<div id="centeredmenu"> <ul> <li><a href="#">Первая закладка</a></li> <li><a href="#" class="active">Вторая закладка</a></li> <li><a href="#">Третья закладка</a></li> <li><a href="#">Четвертая закладка</a></li> </ul> </div>
Простое вертикальное меню
Исходный html-код меню будет выглядеть так:
<nav class="menu_color"> <ul class="my_menu"> <li><a href="#/">пункт 1<a><li> <li><a href="#/">пунтк 2<a><li> <li><a href="#/">пункт 3<a><li> <li class="active"><a href="#/">пункт 4<a><li> <li><a href="#/">пункт 5<a><li> <ul> <nav>
Кроме основных классов, рассмотренных в предыдущем материале, добавлен класс для активного пункта (ссылка на текущую страницу).
Сброс и установка стилей по умолчанию
Избавляемся от стилей для списков, назначенных браузером (или шаблоном) по умолчанию.
Для этого используем класс . Кроме того прописываем для него общие стилевые правила, которые будут применяться ко всем меню, даже если будет измененна тема оформления.
Здесь же можно задать размеры и другие свойства шрифта, если они отличаются от основных.
Файл my-menu.css
/* Убираем маркеры и отступы */ .my_menu { list-stylenone; margin; padding; } .my_menu li { margin; padding; positionrelative; } /* Общие правила для пунктов меню */ .my_menu li a { displayblock; margin; padding12px 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(, , , ); } /* Подсветка пункта при наведении */ .menu_color > ul > li > a:hover { color #bbb; background rgba(, , , 0.1); } /* Активный пункт */ .menu_color > ul > li.active > a, .menu_color > ul > li.active > a:hover { color#fff; backgroundrgba(, , , 0.4); }
Пояснения:
- Если возникнет необходимость к определенным пунктам меню добавить подпункты, т.е. сделать меню многоуровневым, то конструкция позволит ограничить применение стилей только к пунктам меню первого уровня. Для подменю можно будет прописать другие стили оформления.
- Использование прозрачности при задании цвета фона — . Это универсальное режение для любого темного бэкграунда. Если вы решите изменить цвет фона меню, фон активного пункта и подсветка пунктов при наведении изменятся автоматически. Впрочем, ничто не мешает вам задать понравившиеся цвета явно.
×
Замечание
Цвет фона меню задавать не обязательно, если он наследуется от родительского блока.
Разделители пунктов
Стили привязываем к классу , т.к. это элемент оформления, а не разметки.
Конструкция используется для присвоения стилей всем пунктам основного меню, кроме первого. Таким образом убирается верхняя рамка первого пункта меню.
Если в этом нет необходимости — заменяем на
/* Разделитель пунктов меню */ .menu_color > ul > li + li > a { border-top 1px solid rgba(255, 255, 255, 0.1); box-shadow -1px rgba(, , , 0.15); }
Повторяем тот же трюк с использованием rgba. Цвета для верхней границы и тени заданы полупрозрачными — черный 15% прозрачности и белый 10% соответственно.
Это универсальное режение для любого темного бэкграунда. Если вы решите изменить цвет фона, то цвет рамки и тени изменится автоматически!
Горизонтальное выпадающее меню на всю ширину
Большинство из вас могут меня упрекнуть, мол такие менюшки, как я показал выше, это привет из прошлого и от части вы правы, хотя я встречал свежие верстки с такими менюшками.
Далее я напишу стили для создания выпадающего меню на всю ширину рабочей области. Назвать такое меню адаптивным будет сложно, но динамическим оно будет 100%.
Надеюсь вы скачали пример выше. Html у нас остается прежним, а вот CSS мы поменяем полностью. Вы можете просто взять от сюда код CSS и вставить в скачанный пример, или же посмотреть в режиме демо как он работает.
Я добавил в хтмл випадашку для последнего пункта меню, чтобы показать как она будет работать и прижиматься к правому краю.
Также этот пример отличается от первого тем, что выпадающее меню, сама выпадашка, тянется в зависимости от ширины всех пунктов меню.
Для очень длинных пунктов меню, такой вариант может быть не сильно удобным, так как они будут вылазить за пределы. Чтобы отключить это свойство, достаточно найти свойство «white-space:nowrap;» у селектора #menu1 ul li ul, и удалить его.
Ниже вы можете посмотреть демо или скачать исходники горизонтального выпадающего меню:
Скачать пример
Без разделителей это меню смотрится так себе. Разделители можно добавить в хтмл руками, но если у вас CMS, например WordPress, – то руками там добавлять не сильно удобно.
Далее я покажу вам как можно добавить разделители в меню.
Проверка вводимых значений для подкатегории в зависимом выпадающем списке
Как видите, весь трюк зависимого списка состоит в использовании функции СМЕЩ. Ну хорошо, почти весь. Помогают ей функции ПОИСКПОЗ и СЧЕТЕСЛИ. Функция СМЕЩ позволяет динамически определять диапазоны. Вначале мы определяем ячейку, от которой должен начинаться сдвиг диапазона, а в последующих аргументах определяем его размеры.
В нашем примере диапазон будет перемещаться по столбцу Подкатегория в рабочей таблице (G2:H15). Перемещение начнем от ячейки H2, которая также является первым аргументом нашей функции. В формуле ячейку H2 записали как абсолютную ссылку, потому что предполагаю, что мы будем использовать раскрывающийся список во многих ячейках.
Поскольку рабочая таблица отсортирована по Категории, то диапазон, который должен быть источником для раскрывающегося списка, будет начинаться там, где впервые встречается выбранная категория. Например, для категории Питание мы хотим отобразить диапазон H6:H11, для Транспорта — диапазон H12: H15 и т. д
Обратите внимание, что все время мы перемещаемся по столбцу H, а единственное, что изменяется, это начало диапазона и его высота (то есть количество элементов в списке)
Начало диапазона будет перемещено относительно ячейки H2 на такое количество ячеек вниз (по числу), сколько составляет номер позиции первой встречающейся категории в столбце Категория. Проще будет понять на примере: диапазон для категории Питание перемещен на 4 ячейки вниз относительно ячейки H2 (начинается с 4 ячейки от H2). В 4-ой ячейке столбца Подкатегория (не включая заголовок, так как речь идет о диапазоне с именем Рабочий_Список), есть слово Питание (его первое появление). Мы используем этот факт собственно для определения начала диапазона. Послужит нам для этого функция ПОИСКПОЗ (введенная в качестве второго аргумента функции СМЕЩ):
Высоту диапазона определяет функция СЧЕТЕСЛИ. Она считает все встречающиеся повторения в категории, то есть слово Питание. Сколько раз встречается это слово, сколько и будет позиций в нашем диапазоне. Количество позиций в диапазоне — это его высота. Вот функция:
Конечно же, обе функции уже включены в функцию СМЕЩ, которая описана выше
Кроме того, обратите внимание, что как в функции ПОИСКПОЗ, так и в СЧЕТЕСЛИ, есть ссылка на диапазон названный Рабочий_Список. Как я уже упоминал ранее, не обязательно использовать имена диапазонов, можно просто ввести $H3: $H15
Однако использование имен диапазонов в формуле делает ее проще и легко читаемой.
Вот и все:
Скачать пример зависимого выпадающего списка в Excel
Одна формула, ну не такая уж и простая, но облегчающая работу и защищает от ошибок при вводе данных!
Два варианта использования этого трюка я уже представил. Интересно, как вы его будете использовать?
Выпадающий список в Excel это, пожалуй, один из самых удобных способов работы с данными. Использовать их вы можете как при заполнении форм, так и создавая дашборды и объемные таблицы. Выпадающие списки часто используют в приложениях на смартфонах, веб-сайтах. Они интуитивно понятны рядовому пользователю.
Кликните по кнопке ниже для загрузки файла с примерами выпадающих списков в Excel:
Изображения
СлайдшоуГалерея слайдшоуМодальные изображенияЛайтбоксАдаптивная сетка изображенияСетка изображенияГалерея изображений с вкладкамиНаложение при наведении курсора на изображениеСлайд наложенного изображенияZoom наложенного изображенияTitle наложенного изображенияИконка наложенного изображенияЭффекты изображенияЧерное и белое изображениеПозиция текста над изображениемТекстовые блоки над изображениемИзображение с прозрачным текстомФоновое изображение на всю страницуФорма на изображенииИмидж герояРазмытое фоновое изображение на всю страницуИзменение фона при прокруткеИзображения друг за другомОкруглые изображенияИзображения аватарыАдаптивные изображенияЦентрирование изображенийЭскизы изображенийПредставление команды на страницеЛипкое изображениеОтразить изображениеВстряхнуть изображениеГалерея портфолиоПортфолио с фильтрациейZoom изображенияУвеличительное стекло на изображенииСлайдер сравнения изображений
А теперь вертикально. Я сказал вертикально!
Для второй программы используем за основу предыдущий код. Я захотел, чтобы пункты моего вертикального меню были не скошены, а с округленными углами.
В предыдущих статьях я уже работал с данным параметром, так что сложностей с пониманием его функционирования, думаю, не возникнет.
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 |
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Вертикальная панель</title> <style> li{ display: block; margin: 13px; padding: 13px; background: #FF8C00; width:20%; text-align:center; font-size:20px; border-radius:10px; } a { color: #fff; } li:hover { background: #1C1C1C; } </style> </head> <body> <menu> <li>Главная</li> <li>О компании</li> <li><a href="3.html">Продукция</a></li> <li><a href="4.html">Контакты</a></li> </menu> </body> </html> |
Как вы уже заметили, главное изменение в этом коде – это отсутствие объявления display: inline-block, который собственно и отвечал за горизонтальное расположение пунктов навигации.