Выпадающее меню css: Горизонтальное выпадающее меню

Содержание

Выпадающее меню, которое открывается вверх / вверх с помощью pure css



Я создал выпадающее меню с чистым CSS, и я получил его в том месте, которое мне нравится, за исключением того, что я хочу, чтобы это было «drop-up», а не «drop-down», так как строка меню находится в нижней части макета. Что мне нужно добавить или изменить, чтобы сделать его «drop-up»?

#menu * { 
  padding:0; 
  margin: 0; 
  font: 12px georgia; 
  list-style-type:none;
}
#menu { 
  margin-top: 100px;
  float: left;
  line-height: 10px; 
  left: 200px;
}
#menu a { 
  display: block; 
  text-decoration: none; 
  color: #3B5330;
}
#menu a:hover { background: #B0BD97;}
#menu ul li ul li a:hover { 
  background: #ECF1E7; 
  padding-left:9px;
  border-left: solid 1px #000;
}
#menu ul li ul li {
  width: 140px; 
  border: none; 
  color: #B0BD97;  
  padding-top: 3px; 
  padding-bottom:3px; 
  padding-left: 3px; 
  padding-right: 3px; 
  background: #B0BD97;
}
#menu ul li ul li a { 
  font: 11px arial; 
  font-weight:normal; 
  font-variant: small-caps; 
  padding-top:3px; 
  padding-bottom:3px;
}
#menu ul li {
  float: left; 
  width: 146px; 
  font-weight: bold; 
  border-top: solid 1px #283923; 
  border-bottom: solid 1px #283923; 
  background: #979E71;
}
#menu ul li a { 
  font-weight: bold;
  padding: 15px 10px;
}
#menu li {
  position:relative; 
  float:left;
}
#menu ul li ul, #menu:hover ul li ul, #menu:hover ul li:hover ul li ul {
  display:none;
  list-style-type:none;
  width: 140px;
}
#menu:hover ul, #menu:hover ul li:hover ul, #menu:hover ul li:hover ul li:hover ul {
  display:block;
}
#menu:hover ul li:hover ul li:hover ul {
  position: absolute;
  margin-left: 145px;
  margin-top: -22px;
  font: 10px;
}
#menu:hover ul li:hover ul {
  position: absolute;
  margin-top: 1px;
  font: 10px;
}
<div>
  <ul>
    <li><center><a href="X">Home</a></center>
      <ul>
        <li><a href="#">About Us</a></li>
        <li><a href="#">Disclaimer</a></li>
      </ul>
    </li> 
    <li>
      <center><a href="#">Practice Areas</a></center>
      <ul>
        <li><a href="#">Civil Law</a></li>
        <li><a href="#">Criminal Law &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &rsaquo;</a>
          <ul>
            <li><a href="#">Joomla</a></li>
            <li><a href="#">Drupal</a></li>
            <li><a href="#">Wordpress</a></li>
          </ul>
        <li><a href="#">Family Law &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &rsaquo;</a>
          <ul>
            <li><a href="#">Joomla</a></li>
            <li><a href="#">Drupal</a></li>
            <li><a href="#">Wordpress</a></li>
          </ul>
        <li><a href="#">Personal Injury &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&rsaquo;</a>
          <ul>
            <li><a href="#">Joomla</a></li>
            <li><a href="#">Drupal</a></li>
            <li><a href="#">Wordpress</a></li>
          </ul>
        <li><a href="#">Traffic Offenses &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&rsaquo;</a>
          <ul>
            <li><a href="#">Joomla</a></li>
            <li><a href="#">Drupal</a></li>
            <li><a href="#">Wordpress</a></li>
          </ul>
        <li><a href="#">FAQ</a> </li>
      </ul>
    </li>

    <li><center><a href="#">Attorney</a></center>
      <ul>
        <li><a href="#">X</a></li>
        <li><a href="#">X</a></li>
        <li><a href="#">X</a></li>
        <li><a href="#">X</a></li>
      </ul>
    </li>

    <li><center><a href="#">Contact Us</a></center>
      <ul>
        <li><a href="#">Locations &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&rsaquo;</a>
          <ul>
            <li><a href="#">Rockville Office</a></li>
            <li><a href="#">Frederick Office</a></li>
            <li><a href="#">Greenbelt Office</a></li>
          </ul>
        <li><a href="#">Phone Directory</a></li>
        <li><a href="#">Mailing Address</a></li>
      </ul>

    </li>

    <li><center><a href="#">Resources</a></center>
      <ul>
        <li><a href="#">Helpful Links</a></li>
        <li><a href="#">Affiliates &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&rsaquo;</a>
          <ul>
            <li><a href="#">Healthcare Providers</a></li>
            <li><a href="#">Insurance Companies</a></li>
          </ul>
        </li></ul>
    <li><center><a href="#">News &amp; Events</a></center>
      <ul>
        <li><a href="#">Press Articles</a></li>
        <li><a href="#">Newsletter</a></li>
        <li><a href="#">Events</a></li>
        <li><a href="#">Blog</a></li>
      </ul>
    <li><center><a href="#">Espanol</a></center>
      <ul>
        <li><a href="#">X</a></li>
      </ul>

  </ul>
</div>
html css drop-down-menu menu
Поделиться Источник greysuit     18 октября 2011 в 21:49

2 ответа


  • QML: раскрывающееся меню, которое открывается вверх

    Мне нужно иметь выпадающий список, который открывается вверх при нажатии на кнопку Меню в QML. Я пытался использовать listview для того же самого, но в реализации мы получаем выпадающий список, который открывается вниз. Любые предложения со ссылкой на приведенный ниже фрагмент. import QtQuick 1.1…

  • Как можно отображать пункты меню снизу вверх с помощью CSS

    Мое меню работает так, как я хочу, за исключением того, что элементы меню отображаются сверху вниз, как и должно быть снизу вверх. Я попытался изменить свойства CSS, но все еще не могу заставить его работать. Мне нужно, чтобы мой контейнер DIV был выровнен по нижней части родительского контейнера….



71

Добавьте bottom:100% к вашему правилу #menu:hover ul li:hover ul

Демо 1

#menu:hover ul li:hover ul {
    position: absolute;
    margin-top: 1px;
    font: 10px;
    bottom: 100%; /* added this attribute */
}

Или еще лучше, чтобы подменю не имели такого же эффекта, просто добавьте это правило

Демо 2

#menu>ul>li:hover>ul { 
    bottom:100%;
}

Демо 3

источник: http://jsfiddle.net/W5FWW/4/

И чтобы вернуть границу, вы можете добавить следующий атрибут

#menu>ul>li:hover>ul { 
    bottom:100%;
    border-bottom: 1px solid transparent
}

Поделиться Joseph Marikle     18 октября 2011 в 22:02



0

Если мы используем выбранный выпадающий список, то мы можем использовать ниже css(Не требуется JS/JQuery)

<select chosen="{width: '100%'}" ng- 
   model="modelName"
   ng- 
   options="persons.persons as 
   persons.persons for persons in 
   jsonData"
   ng- 
   change="anyFunction(anyParam)" 
   required>
   <option value=""> </option>
</select>
<style>   
.chosen-container .chosen-drop {
    border-bottom: 0;
    border-top: 1px solid #aaa;
    top: auto;
    bottom: 40px;
}

.chosen-container.chosen-with-drop .chosen-single {
    border-top-left-radius: 0px;
    border-top-right-radius: 0px;

    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;

    background-image: none;
}

.chosen-container.chosen-with-drop .chosen-drop {
    border-bottom-left-radius: 0px;
    border-bottom-right-radius: 0px;

    border-top-left-radius: 5px;
    border-top-right-radius: 5px;

    box-shadow: none;

    margin-bottom: -16px;
}
</style>

Поделиться Rohit Parte     17 января 2019 в 05:44


Похожие вопросы:


ExtJS-выпадающее меню, которое открывается вверх

Я создал выпадающее меню с ExtJS, и все работает нормально, как и ожидалось. Но я хочу, чтобы это был drop-up, а не выпадающий список, так как строка меню будет располагаться в нижней части окна…


меню rolldown идет вверх

Я хотел бы использовать css, обсуждаемый здесь, но сделать меню свернутым вверх, а не вниз Как создать меню, которое скатывается вниз? CSS


как сдвинуть выпадающее меню вверх

Я не могу сдвинуть свое выпадающее меню вверх… чтобы лучше выровнять его с текстом. Я попробовал margin-top:-10px, но это, кажется, не имеет никакого эффекта. <h2 style=display: inline;>…


QML: раскрывающееся меню, которое открывается вверх

Мне нужно иметь выпадающий список, который открывается вверх при нажатии на кнопку Меню в QML. Я пытался использовать listview для того же самого, но в реализации мы получаем выпадающий список,…


Как можно отображать пункты меню снизу вверх с помощью CSS

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


Css выпадающее / всплывающее меню с полями внизу

У меня есть простое выпадающее меню css, которое расположено в нижнем колонтитуле и имеет направление вверх-fiddle: http://jsfiddle.net/RmTpc/11 / я хотел бы, чтобы открытое меню имело некоторое…


Выпадающее меню MaterializeCSS идет вверх

Я использую выпадающее меню из MaterializeCSS http://materializecss.com/dropdown.html , но я хочу, чтобы это меню открывалось вверх, а не вниз. Могу ли я сделать это с помощью опций или мне придется…


Как сделать выпадающее при наведении меню и стрелки вверх, используя чисто css?

Как сделать выпадающее меню при наведении с использованием чистого css без javascript? Таким образом, при наведении кнопки появится выпадающий список со стрелкой вверх. подобный этому:


Поверните вверх или вниз с помощью jQuery

У меня есть простое выпадающее меню, которое открывается символом треугольника (каретки). Мне нужно повернуть каретку вверх ногами (на 180 градусов), когда меню открыто, и вернуться в положение по…


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

У меня есть код html ниже Выпадающий—> О Основа Блог Контакт Обычай Поддержка Инструменты Его в основном взяли с этого сайта…

CSS выпадающие пункты меню идут горизонтально



Я искал эту проблему в stackoverflow, но ничего не нашел.

Я работал над выпадающим меню в CSS. Когда вы наводите курсор мыши на выпадающее меню, выпадающие элементы отображаются горизонтально, а не вертикально.

HTML

<div>header
<ul>
    <li><a>Home</a></li>
    <li><a></a>Biografie</a></li>
    <li><a>Foto's</a></li>
    <li>Meer
        <ul>
            <li><a>tutorials</a></li>
            <li><a>inhuren</a></li>
        </ul>
    </li>
</ul>

CSS

    /*header*/
#header {
    background-color: #5c931f;
}

#header ul {
    list-style-type: none;
}

#header li {
    width: 100px;
    border: 1px solid black;
    display: inline;
    background-color: #000;
    color: #808080;
    position: relative;
    text-align: center;
}

#header li:hover {
    color: blue;
}
/*dropdown menu*/
.dropdown ul{
    display: none;
}
.dropdown:hover ul{
    display: block;
    position: absolute;
}

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

html css drop-down-menu
Поделиться Источник Melvin     09 мая 2015 в 18:46

2 ответа


  • CSS выпадающие меню не отображаются в IE 7

    На моем веб-сайте по адресу: http://www.mensdiscipleshipnetwork.com У меня есть чистые выпадающие меню CSS. Они, кажется, работают с Internet Explorer 8 и 9, но в IE7 выпадающие меню вообще не появляются. Я изменил z-индекс на 1000 в div, где находится навигационная панель, однако он по-прежнему…

  • Выпадающие меню по CSS или JavaScript

    Я начинающий WWW-разработчик,и мне интересно, должны ли выпадающие меню быть написаны на CSS или JavaScript. Каковы плюсы и минусы двух техник?



2

Вы активно объявили li для отображения inline здесь:

#header li {
...
display: inline;
...
}

Встроенный означает, в основном, «don’t force wrap to next line.» Вынимает это, и оно должно вернуться к поведению block .

Edit: ранее я не замечал вложенного li .

Добавь:

#header .dropdown li {
    display: block;
}

В качестве альтернативы, используйте только прямой дочерний li со встроенным (обратите внимание, что это повлияет на все стили, применяемые к li :

#header > ul > li {
width: 100px;
border: 1px solid black;
display: inline;
background-color: #000;
color: #808080;
position: relative;
text-align: center;
}

Поделиться Dylan Watt     09 мая 2015 в 18:51



0

Добавьте/измените следующий код:

.dropdown ul li{
     display: block;
}
.dropdown:hover ul{
    display: inline;
    position: absolute;
    top: 0;
    left: 0;
    float: left;
}

Ссылка JS Fiddle:

http://jsfiddle.net/kr2jw577/

Однако его нужно немного подправить.

Поделиться Julian     09 мая 2015 в 19:00


Похожие вопросы:


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

У меня возникли некоторые проблемы с CSS (к которому я довольно новичок) — надеюсь, кто-то может дать какой-то совет после того, как мои различные интернет-поиски оказались бесплодными. Моя проблема…


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

Привет, у меня есть сайт с выпадающим меню, и по какой-то причине его элементы складываются горизонтально. HTML выглядит вот так <li id=menuitem>a</li> <ul id=dropdown> <li…


WordPress css репликация меню — пункты меню и элементы в выпадающих списках смещены вправо

Мне нужно скопировать меню из этой установки wordpress http://bit.ly/rrWFMH на некоторые страницы, не относящиеся к wordpress php. Я перевел код меню на http://bit.ly/vcUn1s . Сначала я использовал…


CSS выпадающие меню не отображаются в IE 7

На моем веб-сайте по адресу: http://www.mensdiscipleshipnetwork.com У меня есть чистые выпадающие меню CSS. Они, кажется, работают с Internet Explorer 8 и 9, но в IE7 выпадающие меню вообще не…


Выпадающие меню по CSS или JavaScript

Я начинающий WWW-разработчик,и мне интересно, должны ли выпадающие меню быть написаны на CSS или JavaScript. Каковы плюсы и минусы двух техник?


Подменю раздвигает родительские пункты меню при наведении курсора в Modified WordPress TwentyTwelve

Я работаю над сайтом WordPress, который использует модифицированную версию темы TwentyTweve. Моя работа состоит в том, чтобы изменить выпадающее меню навигации, чтобы оно выталкивало содержимое…


Выпадающие пункты меню идут вниз

У меня есть выпадающее меню, которое содержит список продуктов нашей компании. У меня есть название продукта Hotel Management Solutions , которое я пытаюсь показать в одной строке выпадающего меню,…


Как отобразить пункты меню Bootstrap 3 navbar горизонтально при сворачивании

У меня есть Bootstrap 3 navbar witch, настроенный на коллапс на мине с 1295px. Когда он сворачивается и я нажимаю на кнопку, Я хочу, чтобы он отображал пункты меню горизонтально, а не вертикально….


Выпадающие пункты меню наследуют Родительский пункт меню border CSS issue

Я создал выпадающее меню, однако у меня есть проблема с некоторыми пунктами подменю, наследующими CSS родительского пункта меню. В частности, пункты подменю наследуют синюю границу родительского…


CSS выпадающие пункты меню не выравниваются

У меня возникли проблемы с моим выпадающим меню. Я добавил отступ в свою строку Ul, чтобы мое меню выровнялось по центру, но после этого выпадающие элементы не выровняются. Я уверен, что проблема в…

#10 — Выпадающее меню и списки

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

Видеоурок

Исходный код

Шапка с выпадающими списками

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Bootstrap уроки</title>

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- Latest compiled and minified CSS -->
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh5u" crossorigin="anonymous">

  <!-- Optional theme -->
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
</head>
<body>
  <nav role="navigation">
    <div>
      <div>
        <button type="button" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
              <span>Навигация</span>
              <span></span>
              <span></span>
              <span></span>
            </button>
        <a href="#">itProger</a>
      </div>

      <div>
        <ul>
          <li><a href="#">Ссылка</a></li>
          <li><a href="#">Ссылка</a></li>
          <li>
            <a href="#" data-toggle="dropdown">Dropdown <b></b></a>
            <ul>
              <li><a href="#">Действие</a></li>
              <li><a href="#">Другое действие</a></li>
              <li><a href="#">Что-то еще</a></li>
              <li></li>
              <li><a href="#">Отдельная ссылка</a></li>
              <li></li>
              <li><a href="#">Еще одна отдельная ссылка</a></li>
            </ul>
          </li>
        </ul>
        <form role="search">
          <div>
            <input type="text" placeholder="Поиск">
          </div>
          <button type="submit">Отправить</button>
        </form>
        <ul>
          <li><a href="#">Ссылка</a></li>
          <li>
            <a href="#" data-toggle="dropdown">Dropdown <b></b></a>
            <ul>
              <li><a href="#">Действие</a></li>
              <li><a href="#">Другое действие</a></li>
              <li><a href="#">Что-то еще</a></li>
              <li></li>
              <li><a href="#">Отдельная ссылка</a></li>
            </ul>
          </li>
        </ul>
      </div>
    </div>
  </nav>

  <div>
    <button data-toggle="dropdown">Список <span></span></button>
    <ul>
      <li>Заголовок 1</li>
      <li><a href="#">CSS</a></li>
      <li><a href="#">HTML</a></li>
      <li><a href="#">jQuery</a></li>
      <li></li>
      <li>Заголовок 2</li>
      <li><a href="#">Javascript</a></li>
    </ul>
  </div>

  <!-- jQuery -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
  <!-- Latest compiled and minified JavaScript -->
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</body>
</html>

Онлайн редактор кода

Загрузка…

Задание к уроку

Большое задание по курсу

Также стоит посмотреть

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

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

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

Вертикальных менюшек для сайтов довольно много, в этом уроке я покажу вам только вертикальное выпадающее меню на CSS при наведении с выпадашкой вправо и влево, а также многоуровневые выпадающие меню. Другие варианты вертикальных меню для сайта будут описаны в следующих уроках. И так преступим.

Навигация по странице:

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

У всех браузеров, которые запущенные с ПК или ноутбука, в CSS доступно свойство :hover (тут я малость неправ, это псевдокласс  🙂 ) на базе которого можно построить практически любое вертикальное выпадающее меню.

А что же делать с мобильными браузерами? — или на планшетах спросите вы.

К счастью, разработчики мобильных браузеров предусмотрели (к сожалению не везде) возможность срабатывания псевдокласса :hover при первом нажатии на ссылку, если оно описано в CSS. Благодаря этим стараниям, большинство пользователей сможет увидеть ваше вертикальное выпадающее меню CSS.

Пара слов о преимуществе выпадающих меню:

  • можно вместить очень длинные меню в ограниченное пространство;
  • дизайн становится более изящным;
  • частично улучшаются поведенческие факторы.

 

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

к менюПредставляю вашему вниманию первый пример: простое вертикальное выпадающее меню вправо при наведении.

Написание менюшки мы начнем с html кода и сделаем его универсальным на списках, вариант ответа идентичный тому, что возвращает wordpress.

Html для вертикального меню

Думаю в плане понимания html у вас не возникнет никаких сложностей, типичные списки с тегами ul и li. Смотрим код:

<nav>
    <ul>
        <li><a href="#m1">Первая услуга</a></li>
        <li><a href="#m2">Вторая услуга</a>
            <ul>
                <li><a href="#m2_1">Выпадашка 1</a></li>
                <li><a href="#m2_2">Выпадашка 2</a></li>
            </ul>
        </li>
        <li><a href="#m3">Третья</a>
            <ul>
                <li><a href="#m3_1">Выпадашка с третьей услуги 1</a></li>
                <li><a href="#m3_2">Выпадашка с третьей услуги 2</a></li>
                <li><a href="#m3_3">Краткая выпадашка</a></li>
            </ul>
        </li>
        <li><a href="#m4">4 услуга</a></li>
        <li><a href="#m5">5 услуга</a>
            <ul>
                <li><a href="#m5_1">111111</a></li>
                <li><a href="#m5_2">2222 2222</a></li>
            </ul>
        </li>
        <li><a href="#m6">6 услуга</a></li>
        <li><a href="#m7">7 услуга</a></li>
        <li><a href="#m8">8 услуга</a></li>
    </ul>
</nav><!--menuVertical-->

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

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

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

#menuVertical{width:100%;height:auto;}
    #menuVertical ul{
        display:block;
        width:100%;
        height:auto;
        margin:0px;
        padding:0px;
        list-style:none;
        position:relative;
    }
        #menuVertical ul li{display:block; width:100%; height:auto; position:relative;}
            #menuVertical ul li a{
                position:relative;
                display:block;
                width:100%;
                height:auto;
                box-sizing:border-box;
                font-size:13px;
                text-transform:uppercase;
                font-weight:bold;
                color:#FBF7F7;
                line-height:1.2em;
                padding:10px 15px;
                background:#3A9CD3;
                border-top:1px solid #236A92;
                text-decoration:none;
            }
            #menuVertical ul  li:first-child a{border:0px;}
            #menuVertical ul li a:hover, #menuVertical ul li:hover a{
                background:#0A3CC1;
            }
            #menuVertical ul li ul{
                position:absolute;
                top:0px;
                left:100%;
                display:none;
                width:auto;
            }
            /*******показываем выпадашку при наведении ********/
            #menuVertical ul li:hover ul{display:block;}
                #menuVertical ul li ul li a{
                    white-space:nowrap;
                    text-transform:none;
                    padding:5px 20px;
                }
                    #menuVertical ul li ul li a:hover{
                        background:#75C1D4;
                        color:#0A3CC1;
                    }

 

Вот эта строчка CSS

#menuVertical ul li:hover ul{display:block;}

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

Посмотреть что у нас получилось в этом примере можно на скине:

Как работает вертикальное выпадающее меню css вы можете увидеть в режиме демо ниже, или скачав пример:

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

Это еще не конец, идем дальше.

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

 

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

к менюХтмл код оставляем прежним, его нет смысла менять. Разве что в самом примере, мне придется поменять местами левый блок и правый, для наглядности примера. (увидите скачав пример в конце)

Стили CSS будут немножко отличаться, хотя не кардинально. В моем простом примере достаточно исправить одно значение. В комментариях, я помечу его.

Для более сложных меню, вам потребуется сделать немножко больше правок. Смотрим стили:

#menuVertical{width:100%;height:auto;}
    #menuVertical ul{
        display:block;
        width:100%;
        height:auto;
        margin:0px;
        padding:0px;
        list-style:none;
        position:relative;
    }
        #menuVertical ul li{display:block; width:100%; height:auto; position:relative;}
            #menuVertical ul li a{
                position:relative;
                display:block;
                width:100%;
                height:auto;
                box-sizing:border-box;
                font-size:13px;
                text-transform:uppercase;
                font-weight:bold;
                color:#FBF7F7;
                line-height:1.2em;
                padding:10px 15px;
                background:#3A9CD3;
                border-top:1px solid #236A92;
                text-decoration:none;
            }
            #menuVertical ul  li:first-child a{border:0px;}
            #menuVertical ul li a:hover, #menuVertical ul li:hover a{
                background:#0A3CC1;
            }
            #menuVertical ul li ul{
                position:absolute;
                top:0px;
                right:100%;/*поменяли здесь*/
                display:none;
                width:auto;
            }
            /*******показываем выпадашку при наведении ********/
            #menuVertical ul li:hover ul{display:block;}
                #menuVertical ul li ul li a{
                    white-space:nowrap;
                    text-transform:none;
                    padding:5px 20px;
                }
                    #menuVertical ul li ul li a:hover{
                        background:#75C1D4;
                        color:#0A3CC1;
                    }

Вот и все. У нас получилось вот такое меню. Слева кликабельный скин, справа демо и ссылка на скачивание примера:

 

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

Вертикальное многоуровневое меню

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

Начнем. Для начала хтмл код. У нас добавится несколько списков ul li для следующих уровней сайта. Мой пример будет на 3 выпадающих подменю, по этому html код будет такой:

<nav>
    <ul>
        <li><a href="#m1">Первая услуга</a></li>
        <li><a href="#m2">Вторая услуга</a>
            <ul>
                <li><a href="#m2_1">Выпадашка 1</a></li>
                <li><a href="#m2_2">Выпадашка 2</a></li>
            </ul>
        </li>
        <li><a href="#m3">Есть выпадашки далее</a>
            <ul>
                <li><a href="#m3_2">Выпадашка с третьей услуги 1</a></li>
                <li><a href="#m3_1">Есть выпадашки далее</a>
                    <ul>
                        <li><a href="#m3_1_1">Есть выпадашка далее</a>
                            <ul>
                                <li><a href="#m3_1_1_1">Пункт 1</a></li>
                                <li><a href="#m3_1_1_2">Выпадашка конец</a></li>
                                <li><a href="#m3_1_1_3">Выпадашка конец</a></li>
                            </ul>
                        </li>
                        <li><a href="#m3_1_2">Нет выпадашки далее</a></li>
                    </ul>
                </li>
                <li><a href="#m3_3">Краткая выпадашка</a></li>
                <li><a href="#m3_4">Краткая выпадашка</a></li>
                <li><a href="#m3_5">Краткая выпадашка</a></li>
            </ul>
        </li>
        <li><a href="#m4">4 услуга</a></li>
        <li><a href="#m5">5 услуга</a>
            <ul>
                <li><a href="#m5_1">111111</a></li>
                <li><a href="#m5_2">2222 2222</a></li>
            </ul>
        </li>
        <li><a href="#m6">6 услуга</a></li>
    </ul>
</nav><!--menuVertical-->

 

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

 

Далее идут стили, они не сильно отличаются от предыдущих примеров, но все же:

#menuVertical{width:100%;height:auto;}
    #menuVertical ul{
        display:block;
        width:100%;
        height:auto;
        margin:0px;
        padding:0px;
        list-style:none;
        position:relative;
    }
        #menuVertical ul li{display:block; width:100%; height:auto; position:relative;}
            #menuVertical ul li a{
                position:relative;
                display:block;
                width:100%;
                height:auto;
                box-sizing:border-box;
                font-size:13px;
                text-transform:uppercase;
                font-weight:bold;
                color:#FBF7F7;
                line-height:1.2em;
                padding:10px 15px;
                background:#3A9CD3;
                border-top:1px solid #236A92;
                text-decoration:none;
            }
            #menuVertical ul > li:first-child > a{border:0px;}
            #menuVertical ul li a:hover, #menuVertical ul li:hover a{
                background:#0A3CC1;
            }
            #menuVertical ul li ul{
                position:absolute;
                top:0px;
                left:100%;
                display:none;
                width:150px;
            }
            /*******показываем выпадашку при наведении ********/
            #menuVertical ul li:hover > ul{display:block;}
                #menuVertical ul li ul li a{
                    text-transform:none;
                    padding:5px 20px;
                }
                    #menuVertical ul li ul li a:hover, #menuVertical ul li ul li:hover > a{
                        background:#75C1D4;
                        color:#0A3CC1;
                    }

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

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

 

Как создать такое же меню с выпадашкой влево?

Сейчас я приведу стиль, который нужно поменять, для создания выпадашки вправо:

На рисунке я показал где он находится:

На втором рисунке можно посмотреть как работает вертикальное многоуровневое меню влево при наведении.

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

На этом у меня все, до новых встреч.

Советую посетить родительскую страницу https://help-wp.ru/vypadayushhee-menu/ с разными вариантами меню, или же просмотреть запись горизонтальное выпадающее меню.

Поделитесь ссылкой со своими друзьями в социальных сетях:

Комментарии к записи «Вертикальное выпадающее меню на 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><a href=»#»>Четвертый пункт</a></li>

</ul>

<div>

</body>

 

</html>

 

<span>

Разница только в имени идентификатора для корневого элемента списка <ul>, поскольку для вертикального и горизонтального меню у меня находятся в одном файле.

Теперь можно задать общие стили для отображения CSS меню:

#vnav { width: 400px; float: left; list-style: none; margin: 0; padding: 0; font-size: 1.2em; }

#vnav {

width: 400px;

float: left;

list-style: none;

margin: 0;

padding: 0;

font-size: 1.2em;

}

Единственным отличием от горизонтального меню является то, что мы задаем ширину нашего меню, которая равна 400 пикселов, при помощи свойства width.

Далее задаем стили для всех пунктов HTML списка:

#vnav li { clear: both; height: 2em; }

#vnav li

{

clear: both;

height: 2em;

}

Свойство height задает высоту элементов CSS меню, clear запрещает обтекание вокруг HTML элемента, значение both говорит о том, что ни с левой, ни с правой стороны наше вертикальное меню не будет обтекания.

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

#vnav li a { float: left; display: block; padding: 4px; text-decoration: none; color: #666; text-transform: uppercase; margin-bottom: 5px; margin-right: 10px; }

#vnav li a

{

float: left;

display: block;

padding: 4px;

text-decoration: none;

color: #666;

text-transform: uppercase;

margin-bottom: 5px;

margin-right: 10px;

}

 В принципе, стиль отображения пунктов вертикального CSS меню не отличается от стиля для горизонтального меню.

Теперь мы задаем то, как будут отображаться родительские элементы вертикального CSS меню при наведение на них курсора мыши:

#vnav li:hover a, #vnav li a:hover { background: #999; color: #fff; }

#vnav li:hover a,

#vnav li a:hover

{

background: #999;

color: #fff;

}

Теперь мы должны сделать подпункты вертикального CSS меню невидимыми:

#vnav ul {display: none;}

#vnav ul {display: none;}

После чего следует задать CSS правила, по которым подпункты меню будут выпадать при наведение курсора на родительский элемент:

#vnav li:hover ul {display: block;}

#vnav li:hover ul {display: block;}

Теперь нужно сделать так, чтобы список подпунктов нашего CSS меню отображался справа от своих родительских элементов, сразу же избавляемся от мерзких маркеров HTML списка:

#hnav ul { list-style: none; float: left; margin: 0; padding: 4px 8px; }

#hnav ul

{

list-style: none;

float: left;

margin: 0;

padding: 4px 8px;

}

Но мы еще не достигли того, чтобы список подпунктов меню отображался горизонтально, давайте зададим соответствующие CSS правила:

#hnav ul li { float: left; clear: none; margin: 0; padding: 0; width: auto; height: auto; color: #999; }

#hnav ul li

{

float: left;

clear: none;

margin: 0;

padding: 0;

width: auto;

height: auto;

color: #999;

}

Свойство float: left делает отображение подпунктов меню в линию.

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

#hnav li:hover ul li a, #hnav ul li a { display: inline; 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; }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#hnav li:hover ul li a,

#hnav ul li a

{

display: inline;

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;

}

Вот так будет выглядеть вертикальное выпадающее CSS меню, которое мы только что создали:

Вертикальное CSS меню. Выпадающее CSS меню.

Исходные коды примеров вы можете скачать на публичных страницах вконтакте: раз и два.

На этом всё, спасибо за внимание, надеюсь, что был хоть чем-то полезен и до скорых встреч на страницах блога для начинающих вебразработчиков и вебмастеров ZametkiNaPolyah.ru. Не забываем комментировать и делиться с друзьями;)

Выпадающее меню на CSS . Горизонтальное выпадающее меню

Перед написанием стилей для выпадающего меню необходимо создать структуру HTML документа. Данная структура будет представлять из себя обычный скелет сайта с добавленными тегами для меню. Меню будем создавать используя списки <UL> или <OL>.

Итак приступим к написанию основной структуры сайта


<!DOCTYPE html>
<html>
  <head>
    <title> Выпадающее меню на CSS </title>
  </head>
  <body>
   
  </body>

После того как написали основную структуру сайта необходимо создать структуру нашего меню. Для начала создадим меню верхнего уровня с помощью тегов <NAV> и <UL>


<nav>
  <ul>
    <li><a href='#'>Главная</a></li>
    <li><a href='#'>HTML</a></li>
    <li><a href='#'>CSS</a></li>
    <li><a href='#'>PHP</a></li>
    <li><a href='#'>JavaScript</a></li>
  </ul>
</nav>



Меню верхнего уровня у нас создано. Теперь необходимо назначить стили для элементов меню.


nav {
     margin: 50px 0;
     bacground-color: #E94f56;
    }
nav ul {
        padding: 0;
        margin: 0;
        list-style: none;
        position: relative;
       }
nav ul li {
           margin: 0px -7px 0 0;
           display: inline-block;
           background-color: #E94f56;
           }
nav a {
       display: block;
       padding: 0 10px;
       color: #ffff;
       font-size: 23px;
       line-height: 60px;
       text-decoration: none;
       }
nav a:hover {
             backgroung-color: #000001;
            }

Проверим то что у нас получилось.


 

Теперь наше меню выглядит как меню. Теперь нам необходимо создать вложенное меню. Его мы создаем путем добавления внутрь тега <LI> еще одного списка <UL>. То есть у нас получается список в списке. Создадим структуру с вложенным меню.


<nav>
  <ul>
    <li><a href='#'>Главная</a></li>
    <li><a href='#'>HTML</a>
        <ul>
            <li><a href='#'>История HTML</a></li>
            <li><a href='#'>Структура HTML</a></li>
            <li><a href='#'>HTML5</a></li>  
        </ul>
    </li>
    <li><a href='#'>CSS</a></li>
    <li><a href='#'>PHP</a></li>
    <li><a href='#'>JavaScript</a></li>
  </ul>
</nav>

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

nav ul ul {
        display: none;
        position: absolute;
        top100%;
       }
nav ul li:hover>ul {
            display: inherit;
           }
nav ul ul li {
       min-width: 180px;
       float: none;
       display:list-item;
       position: relative;
       }

Должно получиться следующее

Добавим для пункта меню с вложенным подменю соответствующий индикатор.

     li> a:after {content: '+'}
     li> a:only-child:after {content:'';}  

В итоге у нас получилось следующее

 

35 меню CSS и HTML для мобильных устройств, блогов, электронной коммерции и др.

В этой серии статей с lИзбранные представления кода CSS, HTML и JavaScript, мы обычно используем текстовые эффекты, стрелки, Заголовки или ползунки, с помощью которых можно подчеркнуть дизайн нашего веб-сайта, сделав его более элегантным или способным повысить ценность контента, который мы представляем посетителю.

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

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

Теме статьи:

9 CSS-меню боковой панели, которые нельзя пропустить

Выпадающий список Swanky на чистом CSS

Роскошный Lil Drop Down Manu V2.0 es меню ну полный чистый CSS что имеет дополнительную ценность в том, что в пользовательском интерфейсе нет кода JavaScript. Просто отличное сочетание, чтобы открыть для себя большую элегантность.

это аккордеонное меню es очень просто если мы сравним его с двумя предыдущими с HTML, JS и CSS.

Теме статьи:

16 каскадных меню на CSS для обновления вашего сайта

Un вертикальное меню с jQuery и CSS3 de отличный штрих для приложения или веб-сайт. Всевозможные переходы и градиенты с минималистичными тенями.

Un круговое меню de экспериментальная навигация который идеально подходит для технического сайта. Произведено в SVG и GreenSock Animation Platform, без сомнения, разные.

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

Un круговое меню CSS HTML разместить его сбоку и что открывается по кругу с отличным пользовательским интерфейсом.

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

Другой конкретный всплывающее меню с очень хорошо примененной анимацией, дающей отличный эффект.

Рекурсивная навигация при наведении

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

Раскрывающаяся навигация

Un меню выпадающая навигация аналогичен предыдущему, но с другими оттенками в дизайне интерфейса.

Другой выпадающее меню качества в CSS который соответствует текущим стандартам дизайна пользовательского интерфейса.

полный экран, это отзывчивое и простое меню в HTML5 и CSS3 он совместим с Internet Explorer 11.

Un полноэкранное меню в SVG кладут сбоку в гамбургер, и это очень привлекает внимание.

Un Мега меню в CSS и HTML отличается от того, что видно, в современном и минималистском стиле.

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

Меню дизайна материалов есть на основе языка дизайна Google. 

Un гамбургер-меню оптимизирован для мобильных устройств и что это сделано в HTML, CSS и JavaScript.

Полноэкранный Flexbox Velocity.js

Полноэкранный Flexbox Velocity.js это меню огромное качество достигнутого эффекта и за его почти уникальный пользовательский опыт. Полноэкранный флексбокс с velocity.js.

Полная страница вне холста

Полная страница вне холста это высококачественное полноэкранное меню, которое идеально подходит для отображения Как создать вебсайт с этими значениями.

Un всплывающее меню простой эффект линии и очень красиво.

Еще одна концепция меню с clip-path состоящий из очень любопытного наведения и нескольких анимированных категорий.

Зачеркнутый наведение

Зачеркнутый наведение это другое меню наведите указатель мыши на любопытные ссылки Результат.

Меню CSS Lavalamp содержит один анимация наведения для каждой ссылки это поддается динамизму.

Слайдер навигации

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

Un навигация по меню бургеров большой эффект, нацеленный на мобильные устройства.

 

Un меню предназначено для iPhone X которые могут придать вашему веб-сайту нотку качества, чтобы он соответствовал дизайну телефона Apple.

Развернуть подменю для мобильных

Развернуть подменю для мобильных предназначен для нижний колонтитул с изящной анимацией и очень подходящий объем двигателя. Элегантность на всех уровнях для мобильного интерфейса вашего приложения или веб-сайта.

Анимированная мобильная навигация

Другой анимированное меню для мобильного с круговым анимированным фоном с отличными визуальными результатами.

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

Un фильтр меню мобильный преобразован в веб-версию и предназначен для мобильных устройств.

Off-canvas навигация

Off-canvas навигация Это меню, которое экспериментируйте с переходами и навигацией быть очень актуальным. Если вы ищете что-то новое, чтобы удивить, его уровень — лучший в этом списке.

Un боковое меню в CSS что скрыто и так появляется со значком гамбургера.

Фиксированная боковая панель навигации

использование bootstrap вместо flexbox для поддержки IE9 / 10. Еще одно отличное меню для своих Фиксированная боковая панель навигации в своей концепции.

Вкладка «Морфинг»

Вкладка «Морфинг» это меню раскрывающийся список, который появляется при нажатии на главной кнопке вкладки.


Выпадающее меню на чистом CSS с подменю

Хотите создать раскрывающееся меню, используя только HTML и CSS? Решение: Выпадающее меню на чистом CSS с подменю, простое меню HTML CSS с несколькими подменю.

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

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

Итак, сегодня я делюсь раскрывающимся меню Pure CSS с подменю , простым меню HTML CSS с функцией раскрывающегося списка .Это также подменю , вы можете разместить больше, просто скопируйте и вставьте тот же формат, который я создал для настоящих подменю. Раньше я использовал тот же тип раскрывающегося меню , что и раньше, вы можете проверить это здесь.

Если вы сейчас думаете, чем на самом деле является это раскрывающееся меню HTML CSS, то посмотрите превью , приведенное ниже.

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

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

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

Вам также может понравиться:

Раскрывающееся меню на чистом CSS

с исходным кодом подменю

Как всегда, до с общим исходным кодом , давайте поговорим об этом. Как вы можете видеть в предварительном просмотре, это простое раскрывающееся меню с чистым CSS , если вам нужно адаптивное меню, посмотрите эту отзывчивую панель навигации. Я создал список HTML с