Как я могу создать меню в HTML без использования Javascript?

На протяжении многих лет стандартом графического интерфейса пользователя являются строки меню приложений с меню, всплывающим при нажатии или наведении курсора на запись в строке меню. Некоторые веб-сайты также реализуют эту функцию, но, насколько я понимаю, они используют Javascript. По разным причинам Javascript может быть проблемой, поэтому вопрос: возможно ли это реализовать без Javascript, только используя HTML и CSS?

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
5
0
3 244
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Вы можете использовать псевдокласс: hover, чтобы получить эффект наведения.

a:link {
 color: blue;
}

a:hover {
  color: red;
}

Я могу привести более развернутый пример, но не сейчас (нужно отвести детей к стоматологу).

Подождите, подождите ... позвольте мне рассказать эту историю прямо. У вас был скорый визит к детскому стоматологу, дети в пальто от осеннего холода в конце октября, и, с ключами в руках, решили: «Подождите, мне лучше проверить Stack Overflow, прежде чем мы уйдем ... может быть вопрос CSS, на который я могу ответить ! " Меня это забавляет ...

Sean Hanley 24.10.2008 17:45

@ Ядынь: я знаю, это смешно. ... Что случилось с отправкой детей без плащей, чтобы поправить их ...?

Shog9 24.10.2008 18:36
Ответ принят как подходящий

Я делал что-то подобное раньше, и это уловка, которую удалось реализовать, поместив элементы меню в теги привязки, а подменю - в скрытых блоках div ВНУТРИ этих тегов привязки. Уловка CSS состоит в том, чтобы заставить внутренний div появляться во время события a: hover.

Это выглядит примерно так:

<style>
    A DIV { display: none; }
    A:hover DIV { display: block; }
</style>
<a href = "blah.htm">
    Top Level Menu Text
    <div><ul>
        <li><a href = "sub1.htm">Sub Item 1</a></li>
        <li><a href = "sub2.htm">Sub Item 2</a></li>
        <li><a href = "sub3.htm">Sub Item 3</a></li>
    </ul></div>
</a>

Ваш пробег может отличаться ...

Обновлено: Internet Explorer 6 и ниже НЕ поддерживают псевдокласс: hover для других элементов, кроме A. В более `` современных '' браузерах принято использовать этот трюк с LI, TD, DIV, SPAN и большинством любой тег.

Спасибо за эту огромную помощь и даже за упоминание IE6. Поскольку я использую Linux, я бы даже не стал тестировать IE6. Или я должен специально взломать сайт для IE6, чтобы у людей была мотивация перейти на современный браузер? ;-)

Mnementh 24.10.2008 19:21

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

Jeff Fritz 24.10.2008 20:02

Взгляните на CSS Menu Maker.

Вау ... Я искал что-то в точности такое. Отличный пост :).

Abbas 24.10.2008 16:32

Интересно ... Я посмотрел на этот: cssmenumaker.com/builder/menu_info.php?menu=007# в IE6, и он не работал, несмотря на то, что на боковой панели утверждается совместимость с IE6. Покупатель, будь осторожен.

mmacaulay 24.10.2008 17:33

Самый известный метод - меню из рыбы-присоски. Поиск этого приведет к появлению множества интересных меню. Ему нужен только javascript в IE6 и ниже.

Вот список сыновей меню suckerfish.

Рассмотрите возможность использования методов CSS в качестве резервной копии, когда JavaScript недоступен. JavaScript может * обеспечить лучший пользовательский интерфейс для раскрывающихся меню, потому что вы можете добавить некоторые факторы задержки, чтобы меню не исчезало немедленно, если мышь ненадолго покинет область наведения. Меню на чистом CSS иногда может быть немного привередливым в использовании, особенно если цели наведения невелики.

*: конечно, не все скрипты меню действительно этим занимаются ...

Также есть оригинальная статья Эрик Мейер о меню на чистом CSS.

Наверное, будут гораздо более надежные и современные варианты, о которых сейчас упоминают другие, но я подумал, что упомяну об этом для потомков. :)

Другие вопросы по теме