:hover — CSS: каскадные таблицы стилей

Псевдокласс CSS :hover соответствует, когда пользователь взаимодействует с элементом с помощью указывающего устройства, но не обязательно активирует его. Обычно он срабатывает, когда пользователь наводит курсор на элемент (указатель мыши).

 /* Выбирает любой элемент  при "зависании" */
а: наведите {
  оранжевый цвет;
} 

Стили, определенные псевдоклассом :active , будут переопределены любым последующим псевдоклассом, связанным со ссылкой ( :link , :visited или :active ), которые имеют как минимум равную специфичность. Чтобы правильно оформить ссылки, поместите правило :hover после правил :link и :visited , но перед правилом :active , как определено LVHA-порядком : :link — 9 0004 : посетил — :hover :active .

Примечание : Псевдокласс :hover проблематичен на сенсорных экранах. В зависимости от браузера :hover псевдокласс может никогда не совпадать, совпадать только на мгновение после касания элемента или продолжать совпадать даже после того, как пользователь перестал касаться и до тех пор, пока пользователь не коснется другого элемента. Веб-разработчики должны убедиться, что контент доступен на устройствах с ограниченными или отсутствующими возможностями зависания.

Синтаксис

: наведите курсор на 

Примеры

Базовый пример

HTML
 Попробуйте навести курсор на эту ссылку. 
УСБ
 а {
  фоновый цвет: голубой;
  переход: фоновый цвет .5s;
}
а: наведите {
  цвет фона: золото;
} 
Результат

Галерея изображений

Вы можете использовать псевдокласс :hover для создания галереи изображений с полноразмерными изображениями, которые отображаются только при наведении указателя мыши на миниатюру. См. эту демонстрацию для возможной подсказки.

Примечание: Аналогичный эффект, но основанный на псевдоклассе :checked (применительно к скрытым переключателям), см. в этой демонстрации, взятой со справочной страницы :checked.

Технические характеристики

Спецификация Комментарий Обратная связь
HTML Living Standard
Определение ‘:hover’ в этой спецификации.
WHATWG HTML GitHub выдает
Селекторы уровня 4
Определение ‘:hover’ в этой спецификации.
Позволяет применять :hover к любому псевдоэлементу. Рабочая группа CSS составляет черновики ошибок GitHub
Селекторы уровня 3
Определение ‘:hover’ в этой спецификации.
CSS уровня 2 (редакция 1)
Определение ‘:hover’ в этой спецификации.
Исходное определение.

Совместимость с браузером

Таблица совместимости на этой странице создана на основе структурированных данных. Если вы хотите внести свой вклад в данные, посетите https://github.com/mdn/browser-compat-data и отправьте нам запрос на включение.

Рабочий стол Мобильный
Chrome Edge Firefox Internet Explorer 9 0082 Opera Safari Веб-просмотр Android Chrome для Android Firefox для Android Opera для Android Safari на iOS Samsung Internet
:hover Chrome Полная поддержка 1 Край Полная поддержка 12 Firefox Полная поддержка 1 ИЭ Полная поддержка
4
Опера Полная поддержка 4 Сафари Полная поддержка 2 Веб-просмотр Android Полная поддержка 37 Хром Android Полная поддержка 18 Firefox Android Полная поддержка 4 Опера Android Полная поддержка 10.
1
Сафари iOS Полная поддержка 1

Примечания

Полная поддержка 1

Notes

Notes Начиная с Safari для iOS 7.1.2, касание элемента, на который можно щелкнуть, приводит к переходу элемента в состояние :hover . Элемент останется в состоянии :hover , пока другой элемент не перейдет в состояние :hover .
Samsung Интернет Android Полная поддержка 1.0
Элемент опорный

Нестандартный

Хром Полная поддержка 1 Край Полная поддержка 12 Firefox Полная поддержка 1 ИЭ Полная поддержка 4 Опера Полная поддержка 4 Сафари Полная поддержка 2 Веб-просмотр Android
Полная поддержка
37
Хром Android Полная поддержка 18 Firefox Android Полная поддержка 4 Опера Android Полная поддержка 10. 1 Сафари iOS Полная поддержка 1 Самсунг Интернет Android Полная поддержка 1.0
Все элементы опорные

Нестандартные

Хром Полная поддержка 1 Край Полная поддержка 12

Примечания

Полная поддержка 12

Notes

Notes В Edge наведение курсора на элемент и последующая прокрутка вверх или вниз без перемещения указателя оставляет элемент в состоянии :hover до тех пор, пока указатель не будет перемещен. См. ошибку 5381673.
Firefox
Полная поддержка
1
ИЭ Полная поддержка 7

Примечания

Полная поддержка 7

Notes

Notes В Internet Explorer 8–Internet Explorer 11 при наведении курсора на элемент и последующем прокручивании вверх или вниз без перемещения указателя элемент остается в :наведите состояние, пока указатель не будет перемещен. См. ошибку 926665.
Примечания
В Internet Explorer 9 (и, возможно, более ранних версиях), если имеет родителя с не- auto width , overflow-x 9 0004 : авто; ,
имеет достаточно содержимого для горизонтального переполнения своего родителя, и для элементов в таблице установлены стили :hover , тогда наведение курсора на указанные элементы вызовет
Высота для увеличения. Посмотрите живую демонстрацию, которая вызывает ошибку. Одним из способов обхода ошибки является установка min-height: 0%; (должна быть указана единица % , так как безразмерная и px не работают) в родительском элементе
.
Опера Полная поддержка 7 Сафари Полная поддержка 2 Веб-просмотр Android Полная поддержка 37 Хром Android Полная поддержка 18 Firefox Android Полная поддержка 4 Опера Android Полная поддержка 10. 1 Сафари iOS Полная поддержка 1 Самсунг Интернет Android Полная поддержка 1.0
Опора псевдоэлемента Хром Полная поддержка 1 Край Полная поддержка 12 Firefox Полная поддержка 28 ИЭ Полная поддержка 11 Опера Полная поддержка 15 Сафари Полная поддержка 2 Веб-просмотр Android Полная поддержка ≤37 Chrome Android Полная поддержка 18 Firefox Android Полная поддержка 28 Опера Android Полная поддержка 14 Сафари iOS Полная поддержка 1 Самсунг Интернет Android Полная поддержка 1. 0

Легенда

Полная поддержка
Полная поддержка
Нестандарт. Ожидайте плохой кросс-браузерной поддержки.
Нестандартный. Ожидайте плохой кросс-браузерной поддержки.
См. примечания по реализации.
См. примечания по реализации.

См. также

  • Ошибка Chromium № 370155: не делайте :hover липким при нажатии на сайтах, которые устанавливают мобильное окно просмотра
  • Ошибка Chromium № 306581: Немедленно отображать наведение и активное состояние при касании, когда страница не прокручивается.

css :hover — Справочник по CodeProject

Псевдокласс CSS :hover соответствует, когда пользователь обозначает элемент с помощью указывающего устройства, но не обязательно активирует его. Этот стиль может быть переопределен любыми другими псевдоклассами, связанными со ссылками, то есть :link , :visited и :active , которые появляются в последующих правилах. Чтобы правильно оформить ссылки, вам нужно поместить правило :hover после :link и :посещено правил, но до :активно , как определено LVHA-порядком : :ссылка :посещено :наведено :активно 9 0005 .

Примеры

Пример1

CSS

Код копирования

:link:hover { контур: красный пунктир; }

.foo: hover { фон: золото; } 

Выпадающее меню

С помощью псевдокласса :hover вы можете создавать сложные каскадные алгоритмы. Это распространенная техника, используемая, например, для создания выпадающих меню на чистом CSS (то есть только CSS, без использования JavaScript). Суть этой методики заключается в создании правила наподобие следующего:

CSS

Код копирования

div.menu-bar ул ул {
дисплей: нет;
}

div.menu-bar li: hover > ul {
дисплей: блок;
} 

для применения к структуре HTML, подобной следующей:

HTML

Копировать код

<дел>
<ул>
  • Меню <ул>
  • Ссылка
  • Подменю <ул>
  • Подменю <ул>
  • Ссылка
  • Ссылка
  • Ссылка
  • Ссылка
  • html">Ссылка
  • См. наш полный пример выпадающего меню на основе CSS для возможной подсказки.

    Галерея с полноразмерными изображениями и превью

    Вы можете использовать псевдокласс :hover для создания галереи изображений с полноразмерными изображениями, отображаемыми только при наведении курсора мыши на превью. См. эту демонстрацию для возможной подсказки.

    Примечание: Для аналогичного эффекта, но на основе :checked Псевдокласс (применяется к скрытым переключателям), см. эту демонстрацию, взятую со страницы En/CSS/:checked.

    Синтаксис  

    CSS

    Код копирования

    :hover  7b_.7d)" title="Фигурные скобки">{ свойства стиля } 

    Описание  

    Псевдокласс CSS :hover соответствует, когда пользователь обозначает элемент с помощью указывающего устройства, но не обязательно активирует его. Этот стиль может быть переопределен любыми другими псевдоклассами, связанными со ссылками, то есть :link , :visited и :active , которые появляются в последующих правилах. Чтобы правильно оформить ссылки, вам нужно поместить правило :hover после :link и :visited правил, но перед :active , как определено LVHA-порядком : :link :visited :hover :active .

    Псевдокласс :hover можно применять к любому псевдоэлементу.

    Визуальные пользовательские агенты, такие как Firefox, Internet Explorer, Safari, Opera или Chrome, применяют соответствующий стиль, когда курсор (указатель мыши) находится над элементом.

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

    Совместимость с браузером  

    • Настольный
    • Мобильный
    Особенность Хром Firefox (Геккон) Internet Explorer Опера Сафари
    для элементов 0,2 1. 0 (1.7 или более ранняя версия) 4,0 4,0 2.0.4 (419)
    различные баги до
    для всех элементов 0,2 1.0 (1.7 или более ранняя версия) 7,0 7,0 2.0.4 (419)
    различные ошибки до
    для псевдоэлемента ? 28 (28) ? ? ?

    Особенность Андроид Firefox Mobile (Геккон) Мобильный IE Опера Мобайл Сафари Мобильный
    Базовая опора ? ? ? ? ?

    В IE8-11 при наведении курсора на элемент и последующей прокрутке вверх/вниз без перемещения указателя элемент остается в состоянии :hover до тех пор, пока указатель не будет перемещен. См. ошибку IE 926665.

    В IE9(и, возможно, раньше), если

    имеет родителя с не- auto шириной и overflow-x : auto; , а
    имеет достаточно содержимого, чтобы горизонтально переполнить родительский элемент, и для элементов внутри таблицы установлены стили :hover , затем наведение курсора на указанные элементы приведет к увеличению высоты
    . . Вот живая демонстрация, которая вызывает ошибку. Один из способов обхода ошибки - установить мин-высота: 0%; для родительского элемента таблицы (и необходимо указать единицу измерения % ; 0 и 0px не работают). Была обнаружена ошибка в тикете jQuery № 10854, но она была закрыта, так как не считается ошибкой jQuery.

    Начиная с Safari Mobile для iOS 7.1.2, касание кликабельного элемента приводит к тому, что элемент переходит в состояние :hover , и элемент остается в состоянии :hover до тех пор, пока другой элемент не перейдет в состояние :hover . 0004: наведите курсор на состояние.

    См. также:

    • Ошибка Chromium № 370155: не делайте :hover липким при нажатии на сайтах, которые устанавливают мобильное окно просмотра
    • Ошибка Chromium № 306581: Немедленно отображать наведение и активное состояние при касании, когда страница не прокручивается.

    Технические характеристики  

    Спецификация Статус Комментарий
    WHATWG HTML Уровень жизни
    Определение ‘:hover’ в этой спецификации.
    Уровень жизни  
    Селекторы уровня 4
    Определение «:hover» в этой спецификации.
    Рабочий проект Может применяться к любому псевдоэлементу.
    Селекторы уровня 3
    Определение «:hover» в этой спецификации.
    Автор записи

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *