Итак, я некоторое время «собирал» CSS-меню (другим термином было бы «заимствование», другим - «нагло сдирать»), чтобы учиться у них и потенциально повторно использовать некоторые из них. в моих собственных проектах.
Будучи приверженцем старой школы HTML, мне нравится идея стилизованных <ul>
s и <ol>
s, и лучшие интерфейсы меню и вкладок, как правило, используют этот метод для обеспечения доступности или смысловой надежности или по любой другой причине. Мне в основном нравится этот метод, потому что он сохраняет мой источник HTML красивым и чистым.
Теперь я фактически реорганизовал свою коллекцию CSS-меню, чтобы она соответствовала одному «основному» шаблону разметки, который я экстраполировал из самых гибких примеров, таких как CSS Zen Garden. Это выглядит так:
<div class="menustyle">
<ul>
<li class="current"><a href="#" title="Page 1"><span>Home</span></a></li>
<li><a href="#" title="Page 2"><span>Toys</span></a></li>
<li><a href="#" title="Page 3"><span>About Us</span></a></li>
<li><a href="#" title="Page 4"><span>Contact</span></a></li>
</ul>
</div>
<span class="clearit" /><br />
(диапазон 'clearit' в конце используется для установки clear:both
после меню, которое требует этого)
Во всяком случае, я видел варианты этой разметки на многих сайтах, некоторые с дополнительным включением <div>
, некоторые с использованием слова, отличного от current
, некоторые присоединения класса current
к тегу <a>
чем <li>
, а некоторые упускают изнутри <span>
. У каждого, кажется, есть свой собственный способ сделать разметку меню, которая немного отличается.
В любом случае, после работы с лотом меню, я придумал вышеизложенное, но я пытаюсь выяснить, существует ли реально установленная лучшая практика для этого. Я хотел бы в какой-то момент настроить простой литейный пункт меню CSS, и было бы неплохо получить некоторую информацию о разметке, прежде чем идти дальше.
РЕДАКТИРОВАТЬ: Вопрос не о меню Javascript. Я знаю, есть отличные скриптовые меню, и они позволяют вам иметь подменю, более продвинутые анимации и время наведения, сочетания клавиш, тени и все остальное. Но 90% меню не нуждаются в этих функциях , и гораздо лучше использовать CSS для стилей и эффектов наведения.