Help Admin

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Help Admin » Scripts » Горизонтальное выпадающее меню на CSS и HTML


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

Сообщений 1 страница 7 из 7

1

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

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

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

Код:

CSS:

Код:
/*------------------------------------*\
	НАВИГАЦИЯ
\*------------------------------------*/
#nav{
	float:left;
	width:100%;
	list-style:none;
	font-weight:bold;
	margin-bottom:10px;
}
#nav li{
	float:left;
	margin-right:10px;
	position:relative;
	display:block;
}
#nav li a{
	display:block;
	padding:5px;
	color:#fff;
	background:#333;
	text-decoration:none;
	
	text-shadow:1px 1px 1px rgba(0,0,0,0.75); /* Тень текста, чтобы приподнять его на немного */
	-moz-border-radius:2px;
	-webkit-border-radius:2px;
	border-radius:2px;
}
#nav li a:hover{
	color:#fff;
	background:#6b0c36;
	background:rgba(107,12,54,0.75); /* Выглядит полупрозрачным */
	text-decoration:underline;
}

/*--- ВЫПАДАЮЩИЕ ПУНКТЫ ---*/
#nav ul{
	list-style:none;
	position:absolute;
	left:-9999px; /* Скрываем за экраном, когда не нужно (данный метод лучше, чем display:none;) */
	opacity:0; /* Устанавливаем начальное состояние прозрачности */
	-webkit-transition:0.25s linear opacity; /* В Webkit выпадающие пункты будут проявляться */
}
#nav ul li{
	padding-top:1px; /* Вводим отступ между li чтобы создать иллюзию разделенных пунктов меню */
	float:none;
	background:url(dot.gif);
}
#nav ul a{
	white-space:nowrap; /* Останавливаем перенос текста и создаем многострочный выпадающий пункт */
	display:block;
}
#nav li:hover ul{ /* Выводим выпадающий пункт при наведении курсора */
	left:0; /* Приносим его обратно на экран, когда нужно */
	opacity:1; /* Делаем непрозрачным */
}
#nav li:hover a{ /* Устанавливаем стили для верхнего уровня, когда выводится выпадающий список */
	background:#6b0c36;
	background:rgba(107,12,54,0.75); /* Выглядит полупрозрачным */
	text-decoration:underline;
}
#nav li:hover ul a{ /* Изменяем некоторые стили верхнего уровня при выводе выпадающего пункта */
	text-decoration:none;
	-webkit-transition:-webkit-transform 0.075s linear;
}
#nav li:hover ul li a:hover{ /* Устанавливаем стили для выпадающих пунктов, когда курсор наводится на конкретный пункт */
	background:#333;
	background:rgba(51,51,51,0.75); /* Будет полупрозрачным */
	text-decoration:underline;
	-moz-transform:scale(1.05);
	-webkit-transform:scale(1.05);
}

Подсказки в коде можете убрать.

HTML:

Код:
<ul id="nav">
	<li>
<a href="#" title="Вернуться на главную страницу">Главная</a>
	</li>
	<li>
<a href="#" title="Информация о форуме">О нас</a>
<ul>
	<li><a href="#">Продукты</a></li>
	<li><a href="#">Команда</a></li>
</ul>
	</li>
	<li>
<a href="#" title="Что мы можем для вас сделать">Услуги</a>
<ul>
	<li><a href="#">Услуга один</a></li>
	<li><a href="#">Услуга два</a></li>
	<li><a href="#">Услуга три</a></li>
	<li><a href="#">Услуга четыре</a></li>
</ul>
	</li>
	<li>
<a href="#" title="Наша продуктовая линейка">Продукты</a>
<ul>
	<li><a href="#">Маленький продукт (первый)</a></li>
	<li><a href="#">Маленький продукт (второй)</a></li>
	<li><a href="#">Маленький продукт (третий)</a></li>
	<li><a href="#">Маленький продукт (четвертый)</a></li>
	<li><a href="#">Большой продукт (пятый)</a></li>
	<li><a href="#">Большой продукт (шестой)</a></li>
	<li><a href="#">Большой продукт (седьмой)</a></li>
	<li><a href="#">Большой продукт (восьмой)</a></li>
	<li><a href="#">Невообразимый продукт (девятый)</a></li>
	<li><a href="#">Невообразимый продукт (десятый)</a></li>
	<li><a href="#">Невообразимый продукт (одиннадцатый)</a></li>
</ul>
	</li>
	<li>
<a href="#" title="Как с нами связаться">Контакт</a>
<ul>
	<li><a href="#">Часы работы</a></li>
	<li><a href="#">Местоположение</a></li>
</ul>
	</li>
</ul>

Разметка достаточно проста и представляет собой серию вложенных списков <ul>. Нет никаких ID, классов и элементов. Простой ясный код.

Элемент #nav <ul> содержит серию элементов <li>. Все пункты, которые нуждаются в выпадающих подпунктах, содержат другой элемент <ul>. Обратите внимание, что элемент <ul> выпадающих подпунктов не имеет класса. Мы используем каскадные стили, сохраняя разметку как можно более чистой.

Меню самодостаточно, и не требует ни каких дополнительных модулей.

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

0

2

ООО..спасибо..давно искал!!)

0

3

Здравствуйте!
Чтобы сделать себе выпадающее меню, скопировал с этой страницы html и css-коды, и вставил их в соответствующие им файлы,
но меню не работает. При отображении страницы в браузере (Mozilla, Opera, Chrom, Safari) показывается только маркированный список. Причём делал так с подобными кодами и с других сайтов, результат тот же. Как будто "не работает" файл .css,
хотя ссылка на него в html-документе имеется.
В чём может быть причина? Может быть, из-за отсутствия на компъютере виртуального сервера?

0

4

яВладимир
вы не правильно собрали код. Попробуйте еще раз.

0

5

Все получилось! Спасибо! Только не понятно, ЧТО сдвигает подпункты вправо?

Отредактировано metall-rus (2012-09-14 19:32:50)

0

6

metall-rus
Смотря что вы имеете ввиду, скрин в студию!

0

7

Добрый день!

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

HTML

        <ul>
          <li><a href="http://dokioki.ru/index.php" class="current">Главная</a></li>
          <li><a href="http://dokioki.ru/education.php">Обучение</a></li>
          <ul>
      <li><a href="http://dokioki.ru/esa_attestation.php">Аттестация в ЕСА</a></li>
      <li><a href="http://dokioki.ru/rtn_attestation.php">Аттестация РосТехНаздора</a></li>
      <li><a href="http://dokioki.ru/qualification.php">Повышение квалификации</a></li>
      <li><a href="http://dokioki.ru/diplomas.php">Удостоверения</a></li>
      </ul>
          <li><a href="http://dokioki.ru/SRO.php">Допуск СРО</a></li>
          <ul>
          <li><a href="http://dokioki.ru/sro_builder.php">СРО Стороителей</a></li>
          <li><a href="http://dokioki.ru/sro_designer.php">СРО проектировщиков</a></li>
          <li><a href="http://dokioki.ru/sro_prospector.php">СРО изыскателей</a></li>
      </ul>
          <li><a href="http://dokioki.ru/licence.php">Лицензии</a></li>
           <ul>
          <li><a href="http://dokioki.ru/emercom_license.php">МЧС</a></li>
          <li><a href="http://dokioki.ru/FSB_license.php">ФСБ</a></li>
          <li><a href="http://dokioki.ru/mincult_license.php">Минкультуры</a></li>
      </ul>
          <li><a href="http://dokioki.ru/certification.php">Сертификаты</a></li>
          <ul>
          <li><a href="http://dokioki.ru/iso_certification.php">ИСО 9001-2011</a></li>
          <li><a href="http://dokioki.ru/iso14001_certification.php">ИСО 14001</a></li>
          <li><a href="http://dokioki.ru/ohsas_certification.php">OHSAS 18001</a></li>
          <li><a href="http://dokioki.ru/ims.php">ИСМ</a></li>
      </ul>
          <li><a href="http://dokioki.ru/contact.php">Контакты</a></li>      
        </ul>

CSS
/* menu */
#templatemo_menu {
clear: both;
width: 930px;
height: 45px;
padding: 0 15px;
background: url(images/menu.jpg) no-repeat
}

#templatemo_menu ul {
float: left;
width: 995px;
margin: 0;
padding: 0;
list-style: none;
}

#templatemo_menu ul li {
padding: 0px;
margin: 0px;
display: inline-block;
}

#templatemo_menu ul li a {
float: left;
display: block;
padding: 8px 20px;
margin: 0 1px 0 0;
font-size: 14px;
font-weight: bold;
text-align: center;
text-decoration: none;
color: #000;
outline: none;
border: none;
background: url(images/templatemo_menu_divider.png) center right no-repeat
}

#templatemo_menu ul li a:hover, #templatemo_menu ul li .current { color: #fff; background: #d5a30b; }

http://s5.uploads.ru/t/v2aK9.jpg

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

0


Вы здесь » Help Admin » Scripts » Горизонтальное выпадающее меню на CSS и HTML