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

Сегодня я приведу пример создания вертикального выпадающего меню оформленного с помощью CSS. Постараюсь задействовать как можно больше свойств css, чтобы наглядно показать, как можно оформить созданное меню. Меню будет полностью оформлено с использованием Каскадных таблиц стилей. Единственно, что пришлось сделать с помощью JavaScript, это эффект выпадающего меню для Internet Explorer, т.к одно из нужных свойств он всё таки не поддерживает.

Для начала нужно построить структуру нашего меню. Она будет состоять из ненумерованного базового списка включающего в себя списки-подменю.
index.html

<title>Вертикальное выпадающее меню на CSS</title>
<script type="text/javascript" src="cssmenu.js"></script>
 	<link rel="stylesheet" type="text/css" href="style.css">
 
<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="#">SEO продвижение</a></li>
 
 
 	<li><a href="#">SMO продвижение</a></li>
 
</ul>
 
</li>
 
 
 	<li><a href="#">SEO биржи</a></li>
 
 
 	<li><a href="#">SEO софт</a></li>
 
</ul>

style. css

<div> /* Убираем отступы и маркеры в ненумерованном списке, задаём ширину и стили оформления */ ul { padding: 0; margin: 0; list-style: none; width: 140px; list-style: none; border-bottom: 1px solid #C1D8E6; font-size: 11px; font-family: Geneva, Arial, Helvetica, sans-serif; } /* Задаём относительное позиционирование выпадающего списка */ ul li { position: relative; } /* Задаём абсолютное позиционирование выпадающего списка, сдвиг влево на 139 px, чтобы выпадающее меню перекрывало главное и не создавалась двойная граница, по умолчанию выпадающий список будет скрыт */ li ul { position: absolute; left: 139px; top: 0; display: none; } /* Задаём стили для ссылок */ ul li a { display: block; text-decoration: none; color: #003399; background: #EAF4FF; background-image: url('images/bullet-arrow.gif') ; background-repeat: no-repeat; background-position: 1px 9px; padding: 5 5 5 10; border: 1px solid #ccc; border-bottom: 0; } /* Указываем браузеру, что подменю будет появляться, когда курсор находится над элементом списка.
*/ li:hover ul, li.over ul{ display: block; } /* Задаём стили для выпадающего меню */ ul li a:hover { background: #77CF7F; background-image: url('images/bullet-arrow.gif') ; background-repeat: no-repeat; background-position: 1px 9px; text-decoration: none; } /* ХАК для ie, чтобы и там всё корректно отображалось:)*/ /* Fix IE. Hide from IE Mac \*/ * html ul li { float: left; height: 1%; } * html ul li a { height: 1%; } /* End */</div>

JavaScript нужен, чтобы заставить выпадающее меню работать в Internet Explorer. В остальных браузерах должно работать без него.

Вот так работает наше меню — Вертикальное выпадающее меню на CSS
Скачать Example1.zip

Твитнуть

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

Видеоурок 1. Выпадающее меню для сайта с помощь html и css на WordPress

Опубликовано:

Не так давно, на одном из рабочих сайтов, мне нужно было сделать выпадающее меню. Ну дело вроде пустяковое, думал по быстрому сделаю и получу оплату, но не тут то было =) Сначала я решил взять код html и css из каких ни будь подобных уроков и все скопировать, то есть сделать по шаблону. Но после того, как я обнаружил что на многих блогах код дают не правильный — не рабочий, я решил все сделать сам… И все оказалось достаточно просто и быстро. Покажу вам html и css код выпадающего меню — рабочий 🙂 Также рекомендую узнать, как сделать выпадающее меню на WordPress сайте.

html код выпадающего меню — скилет

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

<ul>
        <li><a href="/">Подменю 1</a>
            <ul>
                <li><a href="/" >Пункт подменю 1</a></li>
                <li><a href="/">Пункт подменю 2</a></li>
                <li><a href="/">Пункт подменю 3</a></li>
            </ul>
        </li>
<li><a href="/">Подменю 2</a>
                <ul>
                    <li><a href="/">Пункт подменю 1</a></li>
                    <li><a href="/">Пункт подменю 2</a></li>
                    <li><a href="/">Пункт подменю 3</a></li>
                </ul>
            </li>
</ul>

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

Вот такое меню можно сделать моим способом. ..

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

#mymenu {
    float: left;
    width: 100%;
    margin: 20px 10px;
    list-style: none;
}
#mymenu li {
    float: left;
    width: auto;
    padding: 0 10px;
    font-size: 18px;
}
#mymenu li ul {
    display: none;
    width: 200px;
}
#mymenu li:hover ul {
    display: block;
    position: absolute;
    list-style: none;
    margin: 0;
    padding: 0;
}
#mymenu li ul li {
    float: left;
    width: 200px;
    padding: 5px 0;
    font-size: 14px;
}

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

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

#mymenu {
	float: left;
	width: 150px;
	height: auto;
	margin: 20px 10px;
	list-style: none;
}
#mymenu li {
	display: block !important;
	width: auto;
	padding: 0 10px;
	font-size: 18px;
}
#mymenu li ul {
	display: none;
	width: 200px;
}
#mymenu li:hover ul {
	display: block;
	list-style: none;
	margin: 0 0 0 0px;
	padding: 0;
}
#mymenu li ul li {
	float: left;
	width: 200px;
	padding: 5px 0;
	font-size: 14px;
}

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

Но если в CSS стилях заменить вот этот код, подменю выпадает вправо:

#mymenu li:hover ul {
	display: block;
	list-style: none;
	margin: 0 0 0px 100px;
	position: absolute;
	padding: 0;
}

Выпадающее меню для сайта

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

Если у вас код откажется работать — пишите в комментарии, подправлю вам лично 🙂

Удачной работы! 😉

Опубликовано:

Создание выпадающего меню CSS

Одной из самых основных функций, которыми пользуется большинство веб-сайтов, является простое навигационное меню, которое часто включает в себя некоторый тип «выпадающего списка». В наши дни меню могут принимать все формы и формы, от простого сложенного списка (слева, внизу) до «мега» меню, включающего фотографии и другие медиафайлы (справа, внизу). Мы собираемся построить простую версию слева, хотя эту начальную структуру можно легко перепрофилировать для создания более сложных меню.

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

Сначала сосредоточимся на построении правильной структуры HTML на странице. Все начинается со скромного маркированного списка, например:

.
  • Дом
  • О
  • Услуги
    • Веб-разработка
    • Графический дизайн
    • Брендинг
  • Портфолио
    • Дизайн
    • Фотография
    • Интерактивный
  • Контакт

Это примерное меню, которое можно найти на веб-сайте портфолио. Маркеры первого уровня («Главная», «О нас», «Услуги», «Портфолио», «Контакты») — это элементы навигации «верхнего уровня», которые всегда видны.

Здесь есть два «подменю», которые представлены пунктирными маркерами в разделах «Услуги» и «Портфолио». Мы должны увидеть их после того, как наведем указатель мыши на верхний уровень.

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

Шаг 1

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

 <навигация>
 <ул>
  
  • Главная
  • О нас
  • Сервисы
    <ул>
  • html">Веб-разработка
  • Графический дизайн
  • Фирменная символика
  • Портфолио <ул>
  • Дизайн
  • Фотография
  • Интерактивный
  • Контакты
  • Давайте немного проверим HTML:

    Тег

      — это ненумерованный список, а тег
    • — это элемент списка. Эти элементы вместе создают список по умолчанию, который выглядит примерно так на вашей HTML-странице:

      Это выглядит как маркированный список из-за тегов

        . Если бы вместо этого мы использовали теги
          , список был бы пронумерован. (См. эту ссылку для получения дополнительной информации об упорядоченных списках.)

          Если вы следите за серией и используете HTML5Boilerplate в качестве основы, когда вы вставили это на свою страницу, вы, скорее всего, НЕ увидели маркеры, вместо этого ваш список, вероятно, выглядел так:

          Это потому, что мы вложили наш список в элемент

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

     .search_categories{
      размер шрифта: 13px;
      отступ: 10px 8px 10px 14px;
      фон: #fff;
      граница: 1px сплошная #ccc;
      радиус границы: 6px;
      положение: родственник;
    }
     

    Итак, вот что у нас будет:

    2. Увеличение ширины выпадающего списка
    Далее нужно увеличить ширину выпадающего списка, чтобы часть списка была фактически вне содержащего внешнего div. И это делается с помощью CSS, конечно. И пока мы это делаем, давайте также стилизуем раскрывающийся список. И у вас есть полная свобода стилизовать его так, как вам нужно.

     .search_categories .select{
      ширина: 120%;
    }
    .search_categories .выбрать выбрать{
      фон: прозрачный;
      высота строки: 1;
      граница: 0;
      заполнение: 0;
      радиус границы: 0;
      ширина: 120%;
      положение: родственник;
      z-индекс: 10;
      размер шрифта: 1em;
    } 

    Вот что у нас получится:

    3. Скрыть кнопку раскрывающегося списка
    Последний шаг — сократить ширину списка, просто спрятав его с помощью CSS. Ты знаешь, что тебе здесь делать! Просто добавьте переполнение: скрыто в класс search_categories .

    4. Улучшить внешний вид
    О да! Я почти забыл. Таким образом, поле может не отображаться в виде списка для пользователей из-за скрытой кнопки раскрывающегося списка. Таким образом, чтобы сделать поле интуитивно понятным раскрывающимся списком, последний шаг — немного изменить класс select и добавить фоновое изображение стрелки.

     .search_categories .select{
      ширина: 120%;
      background:url('arrow.png') без повтора;
      фоновое положение: 80% центр;
    } 

    Готово!

    Все CSS в одном месте…

    Чтобы помочь вам, вот все CSS, которые я использовал, в одном месте!

     .search_categories{
      размер шрифта: 13px;
      отступ: 10px 8px 10px 14px;
      фон: #fff;
      граница: 1px сплошная #ccc;
      радиус границы: 6px;
      переполнение: скрыто;
      положение: родственник;
    }
    .search_categories .select{
      ширина: 120%;
      background:url('arrow.png') без повтора;
      фоновое положение: 80% центр;
    }
    .search_categories .выбрать выбрать{
      фон: прозрачный;
      высота строки: 1;
      граница: 0;
      заполнение: 0;
      радиус границы: 0;
      ширина: 120%;
      положение: родственник;
      z-индекс: 10;
      размер шрифта: 1em;
    }
     

    Как UX-разработчик, я хочу, чтобы все было идеально, даже если это потребует добавления дополнительного CSS.

    Автор записи

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *