Вертикальное меню выпадающее меню на css: Вертикальное меню на CSS с выпадающим подменю по клику на плюсик


08.10.1971 Facebook Twitter LinkedIn Google+ Разное


Содержание

Выпадающее меню на HTML и CSS

Выпадающее меню можно сделать на CSS не используя скрипты и модули. Просто дописываем несколько строк в CSS файл и готово. Несмотря на простоту меню будет достаточно универсальным. Стили подходить под произвольное количество уровней вложенности. Хоть два хоть десять уровней. Код при этом остаётся тем же. В статье описаны три вида меню, но если вы только начинаете разбираться в вёрстке советую читать сначала. Так будет проще понять.

  1. Вертикальное выпадающее меню
  2. Горизонтальное выпадающее меню с одним уровнем вложенности
  3. Горизонтальное меню с несколькими уровнями вложенности

Сначала сделаем 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; /*второй и последующие уровни расскрываются вправо*/
}

Вот так будет выглядеть наше многоуровневое меню демка.

4 дизайна выпадающего меню. Как сделать горизонтальное и вертикальное выпадающее меню?

Вы знаете, что я нахожу захватывающим? Как много владельцев веб-сайтов страдают расстройством личности.

Здесь вы, как посетитель веб-сайта, ругаетесь на своем ноутбуке, когда некоторые веб-сайты мешают вам делать или находить вещи.

Но затем вы надеваете шляпу своего владельца сайта и — БАМ — вы совершенно другой человек! Все то, что вы раздражали на других сайтах, теперь гордо живет на ваших!

Я не знаю причину этого специфического поведения, но я знаю, что мы должны вылечить это.

Итак, сегодня я хотел бы поговорить об одной из тех вещей, которые вас раздражают на других сайтах, но все же есть на ваших:

Содержание | Быстрая навигация

Раскрывающиеся вертикальные, горизонтальные меню сайта в навигации.

В частности, зачем вам от них избавляться и какие есть альтернативы.

Давайте начнем с этого:

Заставить пользователей страдать от выпадающего меню — это одно из многих маленьких неудобств, которые в совокупности дают менее эффективный и менее приятный пользовательский опыт. Стоит исправить как можно больше таких раздражителей юзабилити.

Давайте рассмотрим типичные примеры выпадающих меню веб-сайтов, которые сводят ваших посетителей с ума.  Они также проиллюстрируют 4 причины, по которым ваше выпадающее меню должно умереть.

4 причины, по которым ваше выпадающее меню должно умереть (и что делать вместо этого).

Причина № 1: Ваши посетители могут пропускать важные страницы.

Представьте, вы попали на этот сайт фрилансера.

Вы хотите узнать о них больше и навести курсор на этот ярлык навигации. Каковы шансы, что вы нажмете на ярлык «Моя история»?

Как меню вредит вашему сайту?

Посетители сайта — люди, а люди — существа привычки. И их привычка — не нажимать на элемент верхнего уровня в раскрывающемся меню, потому что:

  • они думают, что элемент верхнего уровня — это не ссылка, а обычный текст, как на многих сайтах
  • они отвлекаются на новые вещи, которые только что выпали.

Какая альтернатива выпадающим меню?

Если ваше выпадающее меню состоит из 1-2 пунктов:

  • ссылки из раскрывающегося списка сделать элементами навигации верхнего уровня
  • или вообще удалите их из вашей навигации и веб-сайта, как правило, хорошая идея.

Причина № 2: Вы заставляете своих посетителей работать на это и вы создали тонкий контент.

По шкале от 0 до 10, насколько вам нравится нажимать «Наша миссия» или «Наши ценности»?

Представь, ты попал на этот сайт.

Какова вероятность того, что вы хотите узнать об их ценностях, миссии и одобрениях?

Но проблема здесь не только в не относящихся к делу подзаголовках. Это намного хуже.

Как выпадающее меню вредит вашему сайту?

1. Вы просите своих посетителей проделать большую работу, чтобы узнать что-то простое,

… что означает, что они не собираются это делать.

Ваши посетители просто хотят узнать о вас больше, щелкнуть где-нибудь и просто прокрутить вниз, читая.

Но неа, ты решил заставить их работать на это!

2. Вы создали страницы с тонким содержанием.

Если вы работаете в одиночку или являетесь небольшим агентством, вы ни за что не сможете рассказать о своих ценностях и миссии настолько, чтобы оправдать создание отдельных страниц.

В этом конкретном примере «О нас» ценности и страницы миссий имеют в среднем по 150 слов каждая. 3 страницы, содержащие всего 150 слов, которые не помогают вашим посетителям.

Не так много вещей, которые убивают энтузиазм ваших посетителей быстрее, чем «Наша миссия» и «Наши ценности».

Поговорите с посетителями вашего сайта как нормальный человек! Или вы так говорите в реальной жизни, когда люди спрашивают вас о вашем бизнесе?

Какая альтернатива горизонтальным и вертикальным меню сайта?

Напишите одну твердую страницу «О программе», где ваши посетители смогут найти все, что вы хотели бы, чтобы они знали, просто прокрутив вниз. Таким образом, шансы, что они на самом деле все прочитают, намного выше.

Но, допустим, у вас нет выпадающего меню для раздела «О нас».

А как насчет услуг?

Причина № 3: Вам трудно найти соответствующую информацию.

Представь, ты попал на этот сайт.

Вы хотите узнать об их услугах, наведите курсор на меню «Услуги», и эта красота исчезнет.

Ваш следующий ход?

Вероятно, нажав на ярлык «Услуги», в надежде попасть на страницу, где вы перечислите перечисленные услуги вместе с дополнительным текстом.

Попался! Нет такой вещи. Это просто текст.

Итак, вам нужно СЕЙЧАС решить, о каких услугах вы хотели бы узнать.

Не быстрое решение, особенно потому, что в 4 из 6 сервисов есть слово «маркетинг».

Но хорошо, вы нажимаете «Маркетинговый аудит» и начинаете читать.

Хотите узнать о других услугах?

Приготовься прокручивать, парить, выбирать и нажимать, мой друг.

Хотите вернуться к первому интересному сервису?

Какой выпадающий элемент был снова? Нет, не этот. Попробуйте еще раз!

Как это вредит вашему сайту?

Ваши посетители могут пропустить услугу, которая им действительно нужна (и вы можете потерять деньги).

Основная проблема здесь в том, что нет выделенного пространства, где ваши услуги привлекают все внимание ваших посетителей.

Вы просите своих посетителей выбрать один из сервисов, пока они окружены остальным сайтом с его визуальными отвлекающими факторами.

Они не могут сосредоточиться так!

Не удивительно, что они не будут проверять многие из ваших сервисных страниц. Может быть, один или два, но это будет так, потому что вы просите их выполнить все упражнения по прокрутке, зависанию, выбору и щелчку.

И это было только на рабочем столе! На мобильном телефоне, если вы не правильно реализуете макет выпадающего меню и не сразу видите элементы подменю, у ваших бедных посетителей сайта будет бесконечный список ссылок:

Какая альтернатива создания выпадающего меню?

Пусть посетители вашего сайта спокойно решат, какие услуги они хотели бы проверить, без давления выпадающего списка или отвлечения на другие ссылки.

Ряд вариантов:

  • Создать страницу под названием «Услуги»
  • Добавьте в нее свои отдельные сервисы с заманчивым абзацем и визуально заметной ссылкой на соответствующую страницу для каждой услуги.
  • В вашей навигации, ссылка только на главную страницу услуг без каких-либо раскрывающихся списков

… Без выпадающего списка под меткой навигации по сервисам, которая ссылается на это:

Причина № 4: Вы сводите посетителей вашего сайта с ума.

Какая альтернатива?

Если вы абсолютно уверены, что вам нужно много ссылок в навигации, и они не помещаются на верхнем уровне, внедрите все свое меню навигации в виде мегаменю.

Не стесняйтесь давать всем ссылкам достаточно места на экране, делая его полноразмерным. Разработайте свое меню, чтобы облегчить сканирование с использованием различных шрифтов и значков.

Что-то вроде этого:

4 альтернативы выпадающему меню, которое улучшит ваш сайт.

  1. Если у вас есть только один выпадающий элемент:
    • либо поместите его как элемент навигации верхнего уровня
    • или удали это.
  2. Если это имеет смысл, объедините информацию на отдельных страницах из раскрывающегося меню и сделайте из нее одну страницу (например, если у вас есть раскрывающееся меню в разделе «О программе» на верхнем элементе навигации).
  3. Если у вас есть раскрывающееся меню Службы:
    • либо используйте только пункт «Услуги» верхнего уровня, который ведет на выделенную страницу «Услуги»
    • или, если вы предлагаете только 1-2 услуги, удалите элемент навигации «Службы» и создайте ссылку на соответствующие службы прямо из навигации верхнего уровня.
  4. Если у вас нет выбора, кроме как предложить своим посетителям множество вариантов навигации, используйте мега-меню.

Что бы вы ни делали, убедитесь, что ваше меню навигации короткое, наглядное и понятное .

Заключительные слова мудрости.

Будьте внимательным к посетителям сайта.

В следующий раз, когда вы проверяете чей-то веб-сайт, чтобы узнать о нем больше или узнать, какова политика компании, обратите внимание на то, какие преимущества веб-дизайна вас раздражают. Какая информация отсутствует. Что трудно читать

Тогда подумайте о своем сайте. Скорее всего, вы делаете те же ошибки.

✔️ Что такое выпадающее меню?

Это меню в верхней навигации сайта которое показывает подкатегории.

✔️ В чем недостатки выпадающего меню?

Пользователи не видят, что скрывается под заголовком. Им требуются дополнительные действия, которые многие не совершают.

✔️ Стоит ли отказаться от выпадающего меню?

Откажитесь от выпадающих меню. Вы прячете от пользователя информацию.

✔️ Что делать если уже есть выпадающее меню?

Обязательно сделайте ссылкой пункт навигации который раскрывает меню.

✔️ Как сделать горизонтальный выпадающий список?

Установите раскрывающийся список, включив раскрывающееся меню атрибута data-dropdown и class в контейнер меню. Внутри тега li элемента ul вы можете создать еще один новый тег ul для создания множества уровней раскрывающегося списка.

✔️ Как создать горизонтальное раскрывающееся меню в HTML?

Используйте любой элемент, чтобы открыть раскрывающееся меню, например элемент button, a или p. Используйте элемент контейнера (например, div), чтобы создать раскрывающееся меню и добавить в него раскрывающиеся ссылки. Оберните элемент div вокруг кнопки и div, чтобы правильно расположить раскрывающееся меню с помощью CSS.

✔️ Как изменить горизонтальное меню на вертикальное в редакторе Wix?

Изменение меню сайта с горизонтального на вертикальное в редакторе Wix.
Щелкните свое меню в редакторе.
Нажмите клавишу Delete на клавиатуре.
Щелкните Добавить в левой части редактора.
Щелкните по меню.
Перетащите новое меню на свою страницу.

✔️ Как создать вертикальное раскрывающееся меню в CSS?

Добавьте таблицу стилей и форму или HTML-страницу. Затем на странице HTML или веб-форме . NET добавьте «Div» и назовите его «divMenu».

✔️ Как создать раскрывающееся меню?

На новом листе введите записи, которые должны появиться в раскрывающемся списке. Выберите ячейку на листе, в которой вы хотите открыть раскрывающийся список. Перейдите на вкладку «Данные» на ленте, затем «Проверка данных». На вкладке Параметры в поле Разрешить щелкните Список. Щелкните в поле Источник, затем выберите диапазон списка.

Получить экспертную критику вашего сайта в компании TopUser.Pro

Вертикальное раскрывающееся меню при наведении с помощью CSS и HTML

 

В этой статье объясняется, как создать вертикальное раскрывающееся меню с помощью CSS и HTML.

 

Вы часто видите сайты, содержащие строку меню, которая раскрывается при наведении курсора и выглядит действительно великолепно, но обычно это горизонтальные раскрывающиеся меню. Эта статья поможет вам создать вертикальное раскрывающееся меню.

 

Вывод будет примерно таким:

 

 

Теперь мы увидим процедуру создания такого выпадающего меню.

 

Шаг 1

 

Прежде всего, добавьте таблицу стилей и форму или HTML-страницу.

 

Затем на HTML-странице или в веб-форме .NET добавьте «Div» и назовите его «divMenu».

 

После создания Div нам нужно добавить список элементов и еще один список в этих элементах, поэтому окончательный код будет примерно таким:

  1.     
    •     
    •     
    • Дом1    
    •     
            
      •         
      • Homea
      •     
      •         
      • Домашняя страница
      •     
      •         
      • Homec
      •     
      •     
          
    •         
    •     
    •     
    • Дом2    
    •             
            
      •         
      • Home
      •     
      •         
      • Дом
      •     
      •         
      • Homef
      •     
      •     
    •     
    •     
    • Дом3    
    •             
            
      •         
      • Homeg
      •     
      •         
      • Хомэ
      •     
      •         
      • Хомей
      •     
      •     
    •     
    •     
    • Дом4
    •     
    •     
    • Главная5    
    •             
            
      •         
      • Homej
      •     
      •         
      • Хомек
      •     
      •         
      • Гомель
      •     
      •     
    •     
    •     
    • Главная6
    •     
        

Шаг 2

 

Прямо сейчас ваш код представляет собой не что иное, как этот:

 

 

Итак, чтобы он выглядел хорошо и интересно, мы внесем изменения в таблицу стилей, которую мы добавили ранее.

 

Добавьте этот код в свою таблицу стилей:

  1. #divMenu, ul, li, li li {  
  2.     маржа: 0;
  3.     заполнение: 0;
  4. }  
  5.    
  6. #divMenu {  
  7.     ширина: 150 пикселей;
  8.     высота: 27 пикселей;
  9. }  
  10.    
  11. #divMenu ul  
  12. {  
  13.      line-height: 25px;
  14. }  
  15.    
  16.     #divMenu li {  
  17.         стиль списка: нет;
  18.         должность: родственник;
  19.         фон: #641b1b;
  20.     }  
  21.    
  22.         #divMenu li li {  
  23.             стиль-списка: нет;
  24.             должность: родственник;
  25.             фон: #641b1b;
  26.             слева: 148 пикселей;
  27.             верх: -27 пикселей;
  28.         }  
  29.    
  30.    
  31.     #divMenu ul li a {  
  32.         ширина: 148 пикселей;
  33.         высота: 25 пикселей;
  34.         отображение: блок;
  35.         text-decoration: none;
  36.         text-align: center;
  37.         семейство шрифтов: Georgia,’Times New Roman’, serif;
  38.         color:#ffffff;
  39.         border:1px solid #eee;
  40.     }  
  41.    
  42.     #divMenu ul ul {  
  43.         позиция: абсолютная;
  44.         видимость: скрыта;
  45.         верх: 27 пикселей;
  46.     }  
  47.    
  48.     #divMenu ul li:hover ul {  
  49.         видимость: видимый;
  50.     }  
  51.    
  52.     #divMenu li:hover {  
  53.         цвет фона: #945c7d;
  54.     }  
  55.    
  56.     #divMenu ul li:hover ul li a:hover {  
  57.         цвет фона: #945c7d;
  58.     }  
  59.    
  60.     #divMenu a:hover {  
  61.         начертание шрифта: жирный;
  62.     }

Здесь я использовал идентификатор

, другими словами «divMenu».

 

Теперь все изменится, и ваш результат будет совершенно другим и интересным.

 

Вывод

 

html — Выпадающее меню CSS (как разместить подменю в вертикальном положении)

1

Новинка! Сохраняйте вопросы или ответы и организуйте свой любимый контент.
Узнать больше.

Что не так с этим выпадающим меню, мой вопрос в том, как поместить подменю в вертикальное положение, как стилизовать и отключить всплывающее подменю, я пробовал с float:none; пожалуйста помоги???????????

 .cf:до,
.cf: после {
    содержание: " "; /* 1 */
    дисплей: таблица; /* 2 */
}

.cf: после {
    ясно: оба;
}

.cf {
    *увеличение: 1;
}

навигация {
    фон: #916а31;
    высота: 2,3 см;
}

ул,
ли {
    маржа: 0;
    заполнение: 0;
    стиль списка: нет;
    плыть налево;
}

ул {
    фон: #d5973c;
    высота: 2см;
    ширина: 100%;
}

ли а {
    дисплей: блок;
    высота строки: 2em;
    отступ: 0 1em;
    цвет: #fff;
    текстовое оформление: нет;
}

ли а: наведите {
    фон: #916a31;
    высота: 2см;
    верхняя часть обивки: . 3em;
    положение: родственник;
    верх: -.3em;
    радиус границы: .3em .3em 0 0;
}

.текущий,
а: hover.curent {
    фон: #ad9б7ф;
    цвет: #еее;
    верхняя часть обивки: .3em;
    положение: родственник;
    верх: -.3em;
    радиус границы: .3em .3em 0 0;
    нижняя граница: .3em сплошной #917f63;
}


ул.подменю {
    поплавок: нет;
    фон: #916a31;
    ширина: авто;
    высота: авто;
}

ul.submenu li {
    поплавок: нет;
}

ul.submenu li a {
    нижняя граница: 1px сплошной белый;
    заполнение: .2em 1em;
    пробел: nowrap;
}

ul.submenu li:последний ребенок a {
    нижняя граница: нет;
} 
 <навигация>
    <ул>
        
  • Главная
  • Новости
  • О нас
  • Контакт
    • html
    • css

    Вы можете вложить

    с помощью CSS display:none внутри другого
    .
    Comments