[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Создание выпадающего меню
DooDLeZДата: Воскресенье, 15.03.2009, 18:50 | Сообщение # 1
Admin
Группа: Проверенные
Сообщений: 805
[ 21 ]
:-)
Создание выпадающего меню

Итак, приступим...

1) Для удобства вынесем CSS в отдельный файл. Для этого откроем блокнот -> Сохранить как -> style.css.
2) Вставьте в этот файл следующий код (подробнее о нем читайте в конце урока):

Code
#menu,    
#menu ul {    
       border: 1px solid #b4b4b4;    
       background: #003a63;    
       float: left;    
       width: 300px;    
}    

#menu li {    
       float: left;    
       position: relative;    
       background: #003a63;    
}    

#menu a {    
       color: #fff;    
       text-decoration: none;    
       display: block;    
       width: 125px;    
       padding: 3px 10px;    
}    

#menu a:hover {    
       color: #000;    
       background-color: #9ad5ff;    
}    

#menu li:hover,    
#menu li.jshover {    
       background-color: #9ad5ff;    
}    

#menu li ul {    
       display: none;    
       position: absolute;    
       padding: 5px 2px;    
       width: 140px;    
}    

#menu li li a {    
       width: 118px;    
}    

#menu li:hover ul,    
#menu li.jshover ul {    
       background-color: #003a63;    
       display: block;    
}    

#menu li:hover li ul,    
#menu li.jshover li ul {    
       display: none;    
       width: 140px;    
}    

#menu li:hover li:hover ul,    
#menu li.jshover li.jshover ul {    
       display: block;    
}

3) Чтобы увидеть работу стилей, создадим в той же дирректории html файл и, например вставим туда такой код:

Code
<html>    
<head>    
<link rel="stylesheet" href="style.css" type="text/css" />    

<script type="text/javascript">    
<!--//--><![CDATA[//><!--    
         jsHover = function() {    
             var hEls = document.getElementById("menu").getElementsByTagName("LI");    
             for (var i=0, len=hEls.length; i<len; i++) {    
                 hEls[i].onmouseover=function() { this.className+=" jshover"; }    
                 hEls[i].onmouseout=function() { this.className=this.className.replace(" jshover", ""); }    
             }    
         }    
         if (window.attachEvent && navigator.userAgent.indexOf("Opera")==-1) window.attachEvent("onload", jsHover);    
//--><!]]></script>    
</head>    
<body>    
<ul id="menu">    
         <li><a href="/">Главная</a></li>    
         <li><a href="/">Меню</a>    
             <ul>    
                 <li><a href="/">Пункт 1</a></li>    
                 <li><a href="/">Пункт 2</a></li>    
                 <li><a href="/">Пункт 3</a></li>    
             </ul>    
         </li>    
</ul>    
</body>

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

Code
<script type="text/javascript">    
<!--//--><![CDATA[//><!--    
jsHover = function() {    
var hEls = document.getElementById("menu").getElementsByTagName("LI");    
for (var i=0, len=hEls.length; i<len; i++) {    
hEls[i].onmouseover=function() { this.className+=" jshover"; }    
hEls[i].onmouseout=function() { this.className=this.className.replace(" jshover", ""); }    
}    
}    
if (window.attachEvent && navigator.userAgent.indexOf("Opera")==-1) window.attachEvent("onload", jsHover);    
//--><!]]></script>

4) Сохраняем и смотрим, что получилось.

Пояснения к коду:
display: none; - запрет показа элемента
display: block; - показ элемента блоком (при наведении)


IP админа скрыт!
  • Страница 1 из 1
  • 1
Поиск: