» Меню сайта |
Разделы сайта
Шаблоны
Скрипты
Статьи
Графика
|
|
Главная » 2008 » Сентябрь » 10 » Верстка (эпизод 2-й) – Базовые навыки.
Верстка (эпизод 2-й) – Базовые навыки. | 10.Сен.2008 | 17:28:45 |
Верстка (эпизод 2-й) – Базовые навыки.
Вступление.
Опять таки здрасте Это продолжение серии статей «Базовые навыки верстки», в которых будет рассказываться как «лучше всего» и «правильно» верстать сайты, чтобы они соответствовали современным требованиям, и что особенно важно были к тому же семантически правильными и ВАЛИДНЫМИ! Я не зря взял в скобки «лучше всего» и «правильно» так как технологии очень быстро меняются, и постоянно будут появляется более новые, и практичные модели верстки, но все же есть некая база на сегодняшний день, которая не меняется с постоянными обновлениями языков и стандартов, вот о ней и пойдет речь, как и в предыдущей статье. В данной статье я расскажу о разновидностях меню (навигации) и как это делается правильно и просто.
Статью пришлось разделить на несколько, т.к. получилась сильно длинной
Начнем…
Исходя из правил оптимизации кода для поисковых систем, меню лучше всего оформлять с использованием элементов UL и LI. Итак на арене одноуровневое меню, прошу любить и жаловать!
1.1) Одноуровневое меню. Html – одноуровневого меню:
CODE <ul> <li><a href="#">Ссылка 1</a></li> <li><a href="#">Ссылка 2</a></li> <li><a href="#">Ссылка 3</a></li> </ul>
1.2) Многоуровневое меню. Html – многоуровневого меню:
CODE <ul> <li> <a href="#"> Ссылка 1</a> <ul> <li><a href="#">Ссылка 1.1</a></li> <li><a href="#">Ссылка 1.2</a></li> <li><a href="#">Ссылка 3</a></li> </ul> </li> <li> <a href="#">Ссылка 2</a> <ul> <li><a href="#">Ссылка 2.1</a></li> <li><a href="#">Ссылка 2.2</a></li> <li><a href="#">Ссылка 2.3</a></li> </ul> </li> <li> <a href="#">Ссылка 3</a> <ul> <li><a href="#">Ссылка 3.1</a></li> <li><a href="#">Ссылка 3.2</a></li> <li><a href="#">Ссылка 3.3</a></li> </ul> </li> </ul>
Вот пример кода описанного выше, чтобы новичкам было понятно а зачем оно им нужно было: HTML – пример одноуровневого меню.
CODE <ul class="menu"> <li class="first"><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>
CSS – одноуровневого меню.
CODE ul.menu{ list-style:none; margin:0; padding:0; } ul.menu li{ float:left; background:url(../images/hr.gif) no-repeat 0 100%; /* см. примечание */ padding:0 10px; display:inline; font-size:10px; } ul.menu li.first{ background:none; } ul.menu li a{ float:left; font: 10px Arial, sans-serif; color:#000; }
Цитирую Обратите внимание на тот факт, что разделитель у меня не border или еще бог знает что а именно картинка, на самом деле так принято писать, а не иначе. Ну а теперь займемся вещами по интереснее. Создание выпадающего меню разных видов, поехали… 2.1) Стандартное одноуровневое выпадающее меню.
2.1.1) Структура стандартного одноуровневого выпадающего меню (вертикального):
HTML – структура стандартного одноуровневого выпадающего меню (вертикального):
CODE <ul id="menu"> <li class="first"><a href="#">Главная</a></li> <li><a href="#">Каталог товаров</a> <ul> <li><a href="#">Товар 1</a></li> <li><a href="#">Товар 3</a></li> <li><a href="#">Товар 4</a></li> <li><a href="#">Товар 5</a></li> <li><a href="#">Товар 6</a></li> <li><a href="#">Товар 7</a></li> </ul> </li> <li><a href="#">Регистрация</a></li> <li><a href="#">Контакты</a></li> </ul>
CSS – структура стандартного одноуровневого выпадающего меню (вертикального):
CODE #menu { margin: 0; padding: 0; } #menu li { border: 1px solid #09f; width: 150px; background: #fff; list-style: none; } /* немного украшательств */ #menu li a { color: #009; font: 12px/12px Arial, sans-serif; padding: 5px; display: block; text-decoration: none; } #menu li a:hover { color: #0cf; } /* вот от сюда собственно и начинается вся соль способа */ #menu li.hover, /* для IE6, нет функции hover на элементы, только на теги <a>(ссылки;) ) */ #menu li:hover { position: relative; } #menu li.hover ul, /* для IE6, нет функции hover на элементы, только на теги <a>(ссылки;) )*/ #menu li:hover ul { display: block; } /* еще немного украшательств */ #menu li.hover a, #menu li:hover a { color: #0cf; } #menu li.hover ul li a, #menu li:hover ul li a { color: #009; } #menu ul li a:hover { color: #0cf!important; } #menu ul { margin: 0; padding: 0; display: none; position: absolute; left: 100%; top: 0; /* left и top смещение относительно родительского элемента */ }
Цитирую Небольшая расшифровка для начинающих: Как известно интерпретатор читает CSS с низу в верх, то есть все, что ниже считается приоритетнее. Поэтому сначала выпадающему меню присваивается (display: none;), а уже потом, если есть наведение на строку ссылки, <li> – (#menu li:hover ul) применяется свойство (display: block;).
Так же для IE6 необходим и JavaScript. JS – структура стандартного одноуровневого выпадающего меню (любого):
CODE function initPage() { var nav = document.getElementById("menu"); if (nav) { var nodes = nav.getElementsByTagName("li"); for (var i = 0; i < nodes.length; i++) { nodes[i].onmouseover = function () { this.className += " hover"; } nodes[i].onmouseout = function () { this.className = this.className.replace(" hover", ""); } } } } if (window.attachEvent) window.attachEvent("onload", initPage);
Цитирую Для новичков расскажу как подключается JavaScript: Между <head> и </head> вставьте следующее - <script type="text/javascript" src="название файла.js"></script>.
2.1.2) Структура стандартного одноуровневого выпадающего меню (горизонтального):
На самом деле изменений практически нет, только изменяется пару строк в CSS, по этому выложу только его, а то урок получится сильно большой . CSS – структура стандартного одноуровневого выпадающего меню (горизонтального):
CODE #menu { margin: 0; padding: 0; } #menu li { border: 1px solid #09f; width: 150px; background: #fff; list-style: none; float: left; } /* немного украшательств */ #menu li a { color: #009; font: 12px/12px Arial, sans-serif; padding: 5px; display: block; text-decoration: none; } #menu li a:hover { color: #0cf; } /* вот от сюда собственно и начинается вся соль способа */ #menu li.hover, /* для IE6 */ #menu li:hover { position: relative; } #menu li.hover ul, /* для IE6 */ #menu li:hover ul { display: block; } /* еще немного украшательств */ #menu li.hover a, #menu li:hover a { color: #0cf; } #menu li.hover ul li a, #menu li:hover ul li a { color: #009; } #menu ul li a:hover { color: #0cf!important; } #menu ul { margin: 0; padding: 0; display: none; position: absolute; left: 0; top: 100%; /* left и top смещение относительно родительского элемента */ }
Продолжение следует…
|
Категория: Статьй и уроки |
Просмотров: 605 |
Добавил: CorsaR
|
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|
|