Содержание

Псевдокласс :hover | htmlbook.ru

Internet ExplorerChromeOperaSafariFirefoxAndroidiOS
6.0+8.0+1.0+4.0+1.0+1.0+

Краткая информация

Версии CSS

CSS 1CSS 2CSS 2.1CSS 3

Описание

Определяет стиль элемента при наведении на него курсора мыши, но при этом элемент еще не активирован, иными словами кнопка мыши не нажата.

Синтаксис

элемент:hover { … }

Значения

Нет.

Пример 1

HTML5CSS2.1IECrOpSaFx

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8" />
  <title>hover</title>
  <style>
   a:link {
    color: #0000d0; /* Цвет ссылок */
    padding: 2px; /* Поля вокруг текста */ 
   }
   a:hover {
    background: #786b59; /* Цвет фона под ссылкой */ 
    color: #ffe; /* Цвет ссылки */ 
   } 
  </style>
 </head>
 <body>
  <p><a href="1.
html">Ссылка 1</a></p> <p><a href="2.html">Ссылка 2</a></p> <p><a href="3.html">Ссылка 3</a></p> </body> </html>

В данном примере псевдокласс :hover применяется к ссылке (тегу <a>), при этом меняется цвет ссылки и фона под ней. Результат примера показан на рис. 1.

Рис. 1. Результат использования псевдокласса :hover для ссылок

Пример 2

HTML5CSS2.1IECrOpSaFx

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>hover</title>
  <style>
   ul {
    width: 180px; /* Ширина меню */
    list-style: none; /* Для списка убираем маркеры */
    margin: 0; /* Нет отступов вокруг */
    padding: 0; /* Убираем поля вокруг текста */
    font-family: Arial, sans-serif; /* Рубленый шрифт для текста меню */
    font-size: 10pt; /* Размер названий в пункте меню */
   }
   li ul {
    position: absolute; /* Подменю позиционируются абсолютно */
    display: none; /* Скрываем подменю */
    margin-left: 165px; /* Сдвигаем подменю вправо */
    margin-top: -2em; /* Сдвигаем подменю вверх */
   }
   li a {
    display: block; /* Ссылка как блочный элемент */
    padding: 5px; /* Поля вокруг надписи */
    text-decoration: none; /* Подчеркивание у ссылок убираем */
    color: #666; /* Цвет текста */
    border: 1px solid #ccc;/* Рамка вокруг пунктов меню */
    background-color: #f0f0f0; /* Цвет фона */
    border-bottom: none; /* Границу снизу не проводим */
   }
   li a:hover {
    color: #ffe; /* Цвет текста активного пункта */
    background-color: #5488af; /* Цвет фона активного пункта */
   }
   li:hover ul { 
    display: block; /* При выделении пункта курсором мыши отображается подменю */
   }
   .
brd { border-bottom: 1px solid #ccc; /* Линия снизу */ } </style> </head> <body> <ul> <li><a href="russian.html">Русская кухня</a> <ul> <li><a href="linkr1.html">Бефстроганов</a></li> <li><a href="linkr2.html">Гусь с яблоками</a></li> <li><a href="linkr3.html">Крупеник новгородский</a></li> <li><a href="linkr4.html">Раки по-русски</a></li> </ul> </li> <li><a href="ukrainian.html">Украинская кухня</a> <ul> <li><a href="linku1.html">Вареники</a></li> <li><a href="linku2.html">Жаркое по-харьковски</a></li> <li><a href="linku3.html">Капустняк черниговский</a></li> <li><a href="linku4.html">Потапцы с помидорами</a></li> </ul> </li> <li><a href="caucasus.
html">Кавказская кухня</a> <ul> <li><a href="linkc1.html">Суп-харчо</a></li> <li><a href="linkc2.html">Лилибдж</a></li> <li><a href="linkc3.html">Чихиртма</a></li> <li><a href="linkc4.html">Шашлык</a></li> </ul> </li> <li><a href="asia.html">Кухня Средней Азии</a></li> </ul> </body> </html>

В данном примере псевдокласс :hover добавляется к элементу списка (тег <li>) для создания двухуровневого меню. Результат примера показан на рис. 2.

Рис. 2. Использование :hover для создания меню

Браузеры

В браузере Internet Explorer до версии 6.0 включительно псевдокласс :hover работает только для ссылок.

:hover — CSS | MDN

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

:visited:hover:active.

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

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

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

 Так как сенсорные устройства очень распространены, то веб-разработчикам очень важно не иметь контент, доступный только при наведении, так как такой контент неудобно или невозможно использовать на таких устройствах.

:link:hover { outline: dotted red; }

.foo:hover { background: gold; }

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

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

div.menu-bar ul ul {
  display: none;
}

div.menu-bar li:hover > ul {
  display: block;
}

применим к HTML структуре типа следующей:

<div>
  <ul>
    <li>
      <a href="example.html">Меню</a>
      <ul>
        <li>
          <a href="example.html">Ссылка</a>
        </li>
        <li>
          <a href="example. html">Подменю</a>
          <ul>
            <li>
              <a href="example.html">Подменю</a>
              <ul>
                <li><a href="example.html">Ссылка</a></li>
                <li><a href="example.html">Ссылка</a></li>
                <li><a href="example.html">Ссылка</a></li>
                <li><a href="example.html">Ссылка</a></li>
              </ul>
            </li>
            <li><a href="example.html">Ссылка</a></li>
          </ul>
        </li>
      </ul>
    </li>
  </ul>
</div>

Смотрите наш полный пример выпадающего меню, основанный на CSS.

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

Вы можете использовать псевдокласс 

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

Замечания: Для аналагичного эффекта, но основанного на псевдоклассе:checked (применяется к скрытым радиокнопкам), смотрите это демо, взятое со страницы ru/CSS/:checked.
ВозможностьChromeFirefox (Gecko)Internet ExplorerOperaSafari
для <a> элементов0.21.0 (1.7 или ранее)4.04.02.0.4 (419)
различные ошибки до этой версии
для всех элементов0.21.0 (1.7 или ранее)7.07.02.0.4 (419)
различные ошибки до этой версии
для псевдоэлементов?28 (28)???
ВозможностьAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Базовая поддержка?????

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

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

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

Смотрите также:

20 удивительных анимированных кнопок на чистом CSS

источник: 20 Amazing Pure CSS Animated Buttons
автор: Brenda Stokes Barron The Digital Inkwell

Вступление

Если вы хотите придать своему веб-сайту немного больше изящества, вам наверняка захочется исследовать и использовать анимированные кнопки CSS. Эти части кода добавляют слой интерактивности вашему сайту, который оценят большинство посетителей сайта. Кроме того, их можно использовать для придания ощущения динамики и дальнейшей помощи в укреплении вашего бренда. Ниже приведен список из 20 различных анимированных кнопок CSS, которые вы можете добавить на свой сайт с помощью довольно простого CSS.

1. Stylish Animated CSS Buttons for Bloggers

See the Pen Stylish Animated CSS Buttons For Blogger. by Prio-Soft™ (@priosoft) on CodePen.

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

Stylish Animated CSS Buttons for Bloggers.

2. Animated CSS Buttons

See the Pen animated-css-buttons by Naved khan (@Navedkhan012) on CodePen.

Этот набор анимированных кнопок CSS обладает простотой, которая делает их очень удобными в самых разных контекстах. При наведении курсора эти кнопки заполняются цветом под углами, применяют эффекты прокрутки, заливки узором и многое другое.

Animated CSS Buttons.

3. More Animated CSS Buttons

See the Pen Animated CSS Buttons by an (@annguyn) on CodePen.

Этот набор кнопок CSS очень прост, но именно это делает их привлекательными. Если вы хотите добавить немного интерактивности на свой сайт, это безопасная ставка.

More Animated CSS Buttons

4.

CSS3 Buttons

See the Pen css 3 buttons by Oleg Semenov (@wemonsh) on CodePen.

Теперь эти кнопки CSS3 предлагают классные эффекты перехода. Некоторые заполняются цветом при наведении, но другие развивают эффект падающей тени, который заставляет кнопки казаться оторванными от экрана.

CSS3 Buttons

5. Simple CSS Buttons Animation

See the Pen Simple CSS buttons animation by Michael Domanych (@mhouse) on CodePen.

Как следует из названия этого набора кнопок, эти кнопки CSS просты и понятны в своем дизайне. Они предлагают скользящий цвет со всех сторон, а также заполнение от центра.

Simple CSS Buttons Animation

6. CSS + SVG Button Animation

See the Pen CSS + SVG Button Animation by Clément (@clmntclmnt) on CodePen.

Вот один анимированная кнопка, но ее эффект, несомненно, убедительный. При наведении курсора эта кнопка заполняется цветом от сторон до середины, затем вокруг кнопки появляется контрастный цветной контур.

CSS + SVG Button Animation.

7. Animation with Cubic Bezier

See the Pen animation with cubic bezier by Franca (@franca_) on CodePen.

Эта забавная кнопка добавит настоящий стиль любому веб-сайту. Когда вы наводите курсор на кнопку, текст внутри нее меняет цвет.

Animation with Cubic Bezier.

8. Pure CSS Button

See the Pen Pure CSS Button (animation with clip-path) by Marco Antônio (@thismarcoantonio) on CodePen.

Эта кнопка немного отличается от остальной части этого списка. Он имеет путь обрезки, благодаря которому при наведении курсора на текст кнопки анимация круга скользит по стрелке, превращая заостренный конец в точку.

Pure CSS Button

9. Blobs Button

See the Pen Blobs button by Hilary (@hilwat) on CodePen.

Как следует из названия, кнопка Blobs заполняется разноцветными каплями при наведении курсора. Это отличный выбор для тех, кто хочет добавить немного прихоти или веселья на свои сайты.

Blobs Button

10. Simple CSS Button Hover Effects

See the Pen Simple CSS Button Hover Effects by Natalia Reshetnikova (@natalia-reshetnikova) on CodePen.

Вот еще один набор довольно заниженных анимированных кнопок, которые все еще могут оказать реальное влияние. Некоторые эффекты включают в себя растягивание текста кнопки, саму кнопку, разделяющуюся на X-образную форму, и изменение цвета.

Simple CSS Button Hover Effects.

11. CSS Button with Hover Effect

See the Pen CSS Button With Hover Effect by Raj Kamal Chenumalla (@avvign) on CodePen.

Вот еще одна кнопка, которая предлагает супер простой дизайн. При наведении у него развивается аура, которая быстро исчезает. Тонкий, но эффективный.

CSS Button with Hover Effect.

12. 100 Days CSS Button N 045

See the Pen 100 days css Button N° 045 by Vitor Siqueira (@vitor-siqueira) on CodePen.

Эта простая кнопка имеет эффект, когда контур кнопки усиливается в цвете и преследует ее границу при наведении на нее курсора.

100 Days CSS Button N 045.

13. Pure CSS Buttons

See the Pen Pure CSS Buttons by Ishaan Saxena (@ishaansaxena) on CodePen.

Вот еще один набор супер простых кнопок CSS. Они заполняются цветом со всех сторон при наведении и могут использоваться как значки.

Pure CSS Buttons.

14. Auto Width CSS Button Flip

See the Pen Auto Width Css Button Flip by Alex Moore (@MoorLex) on CodePen.

Какой интересный вариант! Когда вы наводите курсор мыши на эту анимированную кнопку, она, кажется, наклоняется вперед, показывая другой текст на «обратной стороне» кнопки.

Auto Width CSS Button Flip.

15. Collection of Button Hover Effects

See the Pen Collection of Button Hover Effects by David Conner (@davidicus) on CodePen.

Here’s another set of animated CSS buttons that use fun hover effects to make a statement. Outline effects, fills, and color shifts make up the majority of the effects used here.

Collection of Button Hover Effects.

16. Pure CSS Button with Ring Indicator

See the Pen Pure CSS Button with Ring Indicator by Cole McCombs (@mccombsc) on CodePen.

Если вы хотите привлечь внимание к призыву к действию или чему-то в этом роде, эта кнопка может быть идеальным выбором. Он постоянно излучает кольцо из своего центра, обращая на него внимание. Затем, при наведении, кнопка подсвечивается и слегка поднимается.

Pure CSS Button with Ring Indicator

17. CSS3 Button Hover Effects with FontAwesome

See the Pen CSS3 Button Hover Effects with FontAwesome by foxeisen (@foxeisen) on CodePen.

Этот набор кнопок использует эффекты наведения в сочетании с FontAwesome для некоторых вечных вариантов дизайна. При наведении курсора на эти кнопки отображается стрелка вместо текста, текстовое смещение для размещения стрелки на кнопке и многое другое.

CSS3 Button Hover Effects with FontAwesome

18. CSS3 3D Flip Button

See the Pen CSS3 3d flip button by Sean Michael (@seansean11) on CodePen.

В отличие от всех других кнопок в этом списке, 3D Flip Button CSS3 отображает эффект при нажатии на нее. Как только вы нажмете, кнопка свернется, чтобы показать новый текст и значки. Это отличный способ указать, что форма была отправлена, например.

CSS3 3D Flip Button

19. Button Fun

See the Pen Button Fun by Jack Cuthbert (@JackCuthbert) on CodePen.

Вот еще один отличный вариант кнопки, который подойдет тем, кто ищет более сдержанный вид. Когда вы наводите курсор на эти кнопки, текст и контур изменяют цвет с эффектом ауры.

Button Fun

20. Button Shine Effect

See the Pen Button Shine Effect by Dan Mensinger (@dmensinger) on CodePen.

Последняя анимированная кнопка CSS в нашем списке — это эффект Button Shine. При наведении курсора кнопка меняет цвет и кажется светящейся, как будто свет прошел над ее поверхностью. Это просто и эффективно, идеальный уровень интерактивности, чтобы вызвать интерес к вашему сайту.

Button Shine Effect.

?

CSS: переключатель при наведении курсора


Пример

Выбор и стиль ссылки при наведении на нее курсора:

а: парение {
цвет фона: желтый;
}

Попробуй сам »

Дополнительные примеры «Попробуйте сами» ниже.


Определение и использование

Селектор : hover используется для выбора элементов при наведении на них указателя мыши.

Совет: Селектор: hover можно использовать для всех элементов, а не только по ссылкам.

Совет: Используйте селектор: link для стилизации ссылок на непосещенные страницы, селектор: посещенный для стиля ссылки на посещенные страницы, и : активный селектор для стилизации активной ссылки.

Примечание: : hover ДОЛЖЕН стоять после: link и: loaded (если они присутствуют) в определении CSS, чтобы быть эффективным!


Поддержка браузера

Числа в таблице указывают первую версию браузера, полностью поддерживающую селектор.

Селектор
: парение 4,0 7,0 2,0 3,1 9,6

Примечание: В IE должен быть объявлен чтобы селектор: hover работал с другими элементами, кроме элемента .


Синтаксис CSS

: hover {
css декларации ;
} Демо

Другие примеры

Пример

Выбор и стиль элемента

,

и

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

p: hover, h2: hover, a: hover {
background-color: yellow;
}

Попробуй сам »

Пример

Выбор и стиль непосещенных, посещенных, наведенных и активных ссылок:

/ * непосещенная ссылка * /
a: ссылка {
цвет: зеленый;
}

/ * посещенная ссылка * /
a: посетил {
цвет: зеленый;
}

/ * наведение курсора мыши на ссылку * /
a: наведение {
цвет: красный;
}

/ * выбранная ссылка * /
а: активный {
цвет: желтый;
}

Попробуй сам »

Пример

Стили ссылок с разными стилями:

а. ex1: hover, a.ex1: active {
цвет: красный;
}

a.ex2: hover, a.ex2: active {
font-size: 150%;
}

Попробуй сам »

Пример

Наведите указатель мыши на элемент , чтобы отобразить элемент

(например, всплывающую подсказку):

div {
дисплей: нет;
}

span: hover + div {
display: block;
}

Попробуй сам »

Пример

Показать и скрыть раскрывающееся меню при наведении курсора мыши:

ul {
дисплей: встроенный;
маржа: 0;
отступ: 0;
}
ul li {display: inline-block;}
ul li: hover {background: # 555;}
ul li: hover ul {display: block;}
ul li ul {
позиция: абсолютная;
ширина: 200 пикселей;
дисплей: нет;
}
ul li ul li {
справочная информация: # 555;
дисплей: блок;
}
ul li ul li a {display: block! Important;}
ul li ul li: hover {background: # 666;}

Попробуй сам »

Связанные страницы

Учебник

CSS: ссылки CSS

Учебное пособие по CSS: Псевдоклассы CSS



25 CSS-эффектов наведения кнопок

Коллекция отобранных вручную бесплатных HTML и CSS-эффектов наведения кнопок примеров кода. Обновление сентябрьской коллекции 2018 г. 3 новинки.

  1. CSS-кнопки
  2. CSS 3D-кнопки
  3. Кнопки отправки CSS
  4. Кнопки с градиентом CSS
  5. Плоские кнопки CSS
  6. Кнопки закрытия CSS
  7. Кнопки загрузки CSS
  8. CSS Кнопки воспроизведения / паузы
  9. Эффекты нажатия кнопки CSS
  10. Библиотеки кнопок CSS
О коде

Кнопка раскраски пузырей

Пузырьковые раскраски на чистом CSS.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Адаптивный: нет

Зависимости: —

Автор
  • Тьяго Маркес
О коде

Анимированные кнопки

Анимированные кнопки с радужным наведением .

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: —

Автор
  • Андреас Сторм
О коде

Кнопка «Нажмите на меня»

Кнопка «Click Me» с чистым CSS эффект наведения / щелчка .

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: —

Автор
  • Микаэль Айналем
О коде

Кнопки + SVG Trianglify

Кнопки с узорами SVG, которые перемещаются при наведении .

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: —

Автор
  • Параскевас Нтинакис
О коде

Стилизованные пуговицы

Элегантные кнопки с эффектами наведения .

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: —

Автор
  • Даниэль Гонсалес
О коде

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

Экспериментируем со свойством CSS mix-blend-mode .

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Даниэль Гонсалес
О коде

Эффект наведения кнопки

Эффект наведения с использованием псевдоэлементов.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Тобиас Райх
О коде

Пограничная кнопка

Кнопка с причудливой рамкой с эффектом наведения .

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

О коде

Эффект наведения кнопки

Красивый эффект наведения для кнопки.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Инес Монтани
О коде

Липкая кнопка

Gooey button hover effect with SVG filter & CSS.

Совместимые браузеры: Chrome, Firefox, Opera, Safari

Зависимости: -

О коде

Пуговицы со снятой

Кнопка с анимированной диагональной одинарной рамкой при наведении курсора.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

О коде

Эффекты при наведении курсора на кнопку с Box-Shadow

Создание базовой анимации с помощью box-shadow s. Никаких дополнительных элементов или даже псевдоэлементов не требуется.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

О коде

Анимация наведения кнопки CSS-маски

Сделал эту анимацию спрайта на кнопке с эффектом наведения для запуска кадра.

Совместимые браузеры: Chrome, Firefox, Opera, Safari

Зависимости: -

Автор
  • Эмануэль Гонсалвеш
О коде

Эффекты при наведении курсора на кнопку

Три кнопки с эффектами наведения.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

О коде

Миксин с эффектом наведения на границу кнопки Sass

CSS-кнопка с эффектом рисования при наведении курсора.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Адаптивный: нет

Зависимости: -

Автор
  • Андреас Сторм
О коде

Откидная кнопка

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Адаптивный: нет

Зависимости: -

О коде

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

Эффект при наведении курсора мыши.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Сделано из
  • HTML (мопс) / CSS (стилус)
О коде

Кнопка Cool Beans 60 кадров в секунду

Мы можем легко сделать наши анимированные кнопки более производительными. Используйте преобразование s и непрозрачность только для анимации. Затем используйте will-change: transform; , чтобы браузер знал, какие анимации ждут впереди.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Сделано из
  • HTML (мопс) / CSS (стилус)
О коде

Кнопка анимации # 3

Практика для стиля наведения кнопки !

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Николас Лантеманн
О коде

Кнопка Исследовать

Просто этакая подопытная кнопка переход .

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Сделано из
  • HTML (мопс) / CSS (стилус)
О коде

Кнопка анимации 2

Практика анимации кнопок.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Марсель Пирне
О коде

Анимированная кнопка градиентного наведения

Кнопка с анимацией наведения градиента HTML и CSS.

Совместимые браузеры: Chrome, Firefox, Opera, Safari

Зависимости: -

Автор
  • Тайлер Петерсон
О коде

Анимированные кнопки наведения SVG

Это чистая реализация некоторых кнопок SVG на HTML / CSS с классным эффектом наведения . Цвета и формы могут быть изменены в соответствии с вашими потребностями.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Коби Поттер
Сделано из
  • HTML (мопс) / CSS (стилус)
О коде

Пуговицы-призраки в стиле ЛКАРС в стиле Star Trek

Эти кнопки вдохновлены компьютерным интерфейсом из «Звездного пути» с небольшими добавленными эффектами перехода при наведении курсора. Левое и правое значения определяют числитель и знаменатель радиуса границы для эффектов перехода.

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

Автор
  • Мадс Хоканссон
О коде

Слайд-текст при наведении курсора

Это простой пример простой анимации наведения кнопки .

Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari

Зависимости: -

8 потрясающих эффектов наведения кнопки HTML, которые вы должны попробовать на своем веб-сайте

Введение в эффекты наведения кнопки HTML

Кнопки - это важные элементы HTML, часто используемые на каждой странице, в веб-приложении или мобильном приложении.

Кнопка

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

Front-end разработчики и дизайнеры часто пытаются выделить кнопки любым приятным образом, особенно когда пользователи взаимодействуют с ними, например, при наведении курсора или фокусе.

Вот почему сегодня я решил показать вам 8 фантастических эффектов наведения кнопок HTML, которые вы можете использовать в своем проекте и удивить пользователей и клиентов.

Надеюсь, вы найдете эти примеры полезными и поделитесь своими любимыми методами, которые сделают ваши кнопки выдающимися.

И еще кое-что, как всегда, у меня для вас есть видеоурок, так что если вы тот, кто предпочитает смотреть, чем читать, перейдите на наш канал Youtube, где вы можете все посмотреть.

Готовы ли вы творить волшебство?

Эффект наведения кнопки отправки

Первая идея для эффекта наведения кнопки HTML, который у меня есть, - это кнопка отправки и простой значок. Большинство кнопок отправки скучные и никогда не удивят, поэтому сегодня у меня есть идея, как сделать их запоминающимися.

В этом случае, когда пользователь наведет курсор на кнопку отправки, простой значок будет анимирован, так как сообщение просто вылетит.

Давайте посмотрим на пример кода:

В приведенном выше примере вы можете видеть, что у нас есть значок на нашей кнопке, и каждый раз, когда пользователь наводит курсор на кнопку, простой значок перемещается за пределы кнопки.

Я думаю, что это довольно крутой эффект для кнопки, которая является частью контактной формы.

Эффект наведения неоновой кнопки

Следующая идея, которая у меня возникла, - это эффект наведения неоновой кнопки. В этом примере я буду использовать очень неоновые цвета, чтобы сделать его действительно выдающимся и запоминающимся. Это даст отличный эффект при использовании на темном фоне.

Кроме того, неоновая кнопка наверняка не останется без внимания пользователей.

Рассмотрим пример с тремя цветами:

В приведенном выше примере вы видите три кнопки с тремя неоновыми цветами, каждая из которых имеет красивую неоновую подсветку.

Эффект наведения кнопки рисования границы

Третья идея - создать кнопку HTML с эффектом рисования при наведении курсора.

Позвольте мне объяснить вам, что я имею в виду, представьте, что у вас есть ссылка без рамки и цвета фона. Когда пользователь наводит курсор на ссылку, граница кнопки рисуется с анимацией.

Посмотрим, как это выглядит на примере.

В этом примере мы использовали псевдоэлементы до и после, чтобы нарисовать границу для нашей кнопки.Мы сделали его того же размера, что и свойство box-sizing.

С эффектом рисования вы можете создавать более захватывающие эффекты рисования.

Эффект наведения кнопки Circle

Четвертая идея для наведения кнопки HTML - это эффект круга. Я думаю, что у нашей кнопки есть кружок определенного цвета и значок. Цвет элемента круга отличается от цвета кнопки, и при наведении курсора цвет круга медленно загружается на всю кнопку.

Давайте посмотрим на пример:

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

Эффект наведения кнопки радиуса границы

Следующая замечательная идея для эффекта наведения кнопки HTML - это эффект радиуса границы. В этом случае после того, как кнопка наведет курсор на границы, она изменит радиус в противоположных углах, поэтому кнопка изменится в виде листа.

Давайте посмотрим, как это выглядит на примере:

В этом примере вы можете увидеть кнопку и навести курсор мыши на изменение радиуса границы верхней правой и нижней левой кнопки.

Эффект зависания кнопки замороженной кнопки

Шестая идея потрясающего эффекта наведения для кнопок, который может дать вашему приложению потрясающий результат, - это эффект замороженной кнопки.

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

Давайте посмотрим на примере.

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

Эффект наведения кнопки Блестящий теневой элемент

Седьмая идея улучшить дизайн наших кнопок HTML и добавить их к фантастическому эффекту наведения - это блестящая тень на элементе.

Позвольте мне объяснить вам, что я имею в виду под теневым элементом. Представьте, что у вас есть простая кнопка с фоном и рамкой. Когда пользователь наводит курсор на кнопку, появляется анимация с тенью, которая проходит через кнопку.

Давайте посмотрим на примере.

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

Эффект наведения кнопки загрузки

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

Давайте посмотрим на пример кода.

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

Заключение

В этой статье я рассмотрел 8 эффектов наведения кнопки HTML, которые стоит попробовать сделать кнопку на вашем веб-сайте или в приложении запоминающейся.

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

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

Спасибо за внимание,
Анна из Дуомли

Сопутствующие показания 📖

Угловой курс по созданию банковского приложения с Tailwind CSS - Урок 4: Регистрация пользователя

Угловой курс по созданию банковского приложения с Tailwind CSS - Урок 3: Баланс учетной записи пользователя

Идеи HTML-проектов для начинающих

Анна Данилец

Анна Данилец окончила факультет управления бизнесом. В течение многих лет она получала солидный опыт в разработке клиентских и серверных интерфейсов, создавая программное обеспечение для известных ИТ-компаний. Ее опыт в области ИТ - это React.JS, Angular, React Native, Flutter, Node.JS и Nest.JS. В последние годы она вела бизнес для Duomly, уделяя особое внимание ИТ, а также интернет-маркетингу, дизайну и созданию контента, таким как ведение блогов и Youtube. В нерабочее время Анна ведет свой настоящий криминальный канал на YouTube, любит спорт, солнце и средиземноморскую кухню.

Подробнее об Анне Данилец

Если понравилось, делитесь и комментируйте!

Создание эффектов наведения кнопок CSS3

CSS3 «hover» - это псевдокласс, который позволяет вам выбирать и стилизовать элементы на веб-странице при наведении курсора мыши на элемент.Вы можете использовать таблицы стилей Javascript или CSS, чтобы отреагировать на это событие в зависимости от вашей цели.

Например:

  button.checkout
{
  цвет фона: синий;
}

button.checkout: наведите указатель мыши
{
 цвет фона: зеленый;
}

  

Приведенный выше код CSS стилизует кнопку с классом checkout. Цвет кнопки по умолчанию синий, и когда мышь находится над кнопкой, цвет меняется на зеленый.

Использование

Этот эффект можно использовать очень изобретательно.Допустим, вы хотите убедить гостя на своем веб-сайте подписаться на информационный бюллетень, который вы рассылаете каждый месяц. Вы стратегически разместили большую синюю кнопку с текстом «Новичок на этом сайте?» . Когда гость нажимает кнопку, волшебным образом появляется форма регистрации.

Шаги по реализации эффекта наведения

Создайте свою веб-страницу

  



   CSS3 эффект наведения 



   

CSS3 в действии

Добавьте большую синюю кнопку действия сразу под элементом h2

  
  

Создайте стиль для большой кнопки, добавив таблицу стилей

Таблицы стилей

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

  
  

Определите и выберите элемент, который вызовет эффект наведения

Существует несколько способов идентификации веб-элементов на странице, включая добавление класса, уникального идентификатора или просто по тегам. В нашем случае мы будем использовать метод id, поскольку он более точен. Добавьте идентификатор в элемент кнопки.

  
  

Стиль пуговицы

Когда страница загружается, кнопка будет иметь синий фон, а текст - белый.

 корпус  {
  отступ слева: 100 пикселей;
}

input # go {
  цвет фона: # 4c9ed9;
  цвет: #ffffff;
  отступ: 20 пикселей 40 пикселей
}
  

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

Добавьте эффект наведения чуть ниже уже существующего стиля, чтобы у вас было 3 стиля

Мы хотим изменить цвет фона с синего на белый и текст с белого на синий, когда пользователь наводит курсор на кнопку.

  input # go: hover {
  цвет фона: #ffffff;
  цвет: # 4c9ed9
}
  

Сохраните свою страницу как mainpage.html

Вот как должен выглядеть скрипт на этом этапе.

  



   CSS3 эффект наведения 
  <стиль>
    тело {
      отступ слева: 100 пикселей;
    }

    input # go {
      цвет фона: # 4c9ed9;
      цвет: #ffffff;
      отступ: 20 пикселей 40 пикселей;
      граница: 1px solid # 111;
    }

    input # go: hover {
      цвет фона: #ffffff;
      цвет: # 4c9ed9;
      граница: 1px solid # 111;
    }
  



   

CSS3 в действии

Демо

Наведите указатель мыши на кнопку

Вы должны увидеть изменение цвета фона и текста. Обратите внимание, что изменение цвета меняется на противоположное, как только мышь выходит за пределы области кнопки. Эффект наведения - это временное событие, которое длится, пока указатель мыши остается внутри стилизованного элемента.

Эффект наведения не может работать на мобильных устройствах, поскольку он в основном работает с мышью. Для ваших мобильных пользователей вы можете рассмотреть альтернативу. Кроме того, как мы уже упоминали, Javascript также может реагировать на событие зависания, предоставляя вам альтернативный путь для вывода на ваш сайт действительно интересных скрытых сокровищ.

Коллекции эффектов наведения кнопок

Коллекция 1

источник

Коллекция 2

50+ примеров наведения кнопок CSS из CodePen 2018

Кому не нравится стилизация кнопок и эффекты наведения с помощью CSS? Кнопка означает действие. Щелкнув или нажав на один из них, вы сможете что-то делать. Кнопки HTML являются важным элементом интерактивного дизайна. Вот почему они так важны, и поэтому хорошо их понимать.

Поэтому, когда мне нужно разработать кнопки и их анимацию наведения, я предпочитаю сначала поискать вдохновение по сторонам.Мое любимое место для этого - CodePen. Вот список эффектов наведения кнопки CSS, которые я собрал, чтобы вы начали. Я надеюсь, вам понравится!

Эффекты при наведении курсора кнопки отправки CSS

Простые, но привлекательные эффекты наведения кнопок отправки CSS за счет анимации псевдоэлементов «: before» и «: after».

Эффекты наведения кнопки CSS

Четыре примера кнопок наведения CSS, содержащих неоновый эффект, угловой фоновый эффект, теневой эффект и импульсный эффект.

Эффекты при наведении курсора на кнопку

Я создал восемь эффектов наведения кнопки на чистом CSS с box-shadow.Каждая кнопка имеет свой уникальный эффект. В основном я использовал box-shadow для создания эффектов, но я также включил такие эффекты, как letter-spacing и border-radius, чтобы придать анимации более динамичный контраст.

Три простых эффекта наведения кнопки CSS

Три CSS-анимации наведения курсора с классными переходами.

Анимация кнопки-призрака

Это было то, что я быстро создал на основе броска Николы Поповича на Dribbble.

Анимированная кнопка градиентного наведения

Я переделываю кнопку-призрак на своем веб-сайте.Это возможный вариант дизайна моего следующего веб-сайта.

Эми Уайнхаус Док Баттон

Давно хотел сделать эту кнопку, и наконец добрался до нее.

Шесть анимаций наведения кнопки на чистом CSS

Шесть потрясающих анимаций кнопок с использованием только чистого CSS3.

Анимированная кнопка-призрак

Классная анимация кнопки CSS, похожая на привидение, сделанная для использования на вашем веб-сайте.

Анимация наведения кнопки

Набор анимаций при наведении курсора мыши.

Button.css: Анимация кнопок CSS3

Коллекция анимаций кнопок CSS3.

8-битный CSS Hovers

8-битных эффектов наведения кнопки.

См. 8-битные CSS Hovers Pen от tstoik (@tstoik) на CodePen.

Анимированные кнопки наведения SVG

Многим понравились кнопки, которые я сделал для своего веб-сайта, поэтому я собрал CodePen и добавил комментарии. Это чистая реализация некоторых кнопок SVG в HTML / CSS с классным эффектом наведения.Цвета и формы могут быть изменены в соответствии с вашими потребностями.

Контейнер для ящиков / кнопок

HTML / CSS окна и эффекты наведения курсора на кнопки.

Кнопка Исследовать

Просто этакий экспериментальный кнопочный переход.

См. Кнопку Pen Button Explore от vanderlanth (@vanderlanth) на CodePen.

Состояния наведения кнопки

Эффектные CSS состояния наведения для кнопки.

Кнопка анимации

Практика анимации семи кнопок beant на основе CSS-фонов.

См. Кнопку Pen Animation Button от lichin-lin (@ lichin-lin) на CodePen.

Кнопка OK CSS

CSS-эффект наведения на значки анимации.

См. Кнопку CSS Pen OK от fixcl (@fixcl) на CodePen.

Кнопка Cool Beans 60 кадров в секунду

Мы можем легко сделать наши анимированные кнопки более производительными. Используйте трансформации и прозрачность только для анимации. Затем используйте «will-change: transform»; чтобы браузер знал, какие анимации ждут впереди.

Эксперимент с анимацией кнопок

Еще одно быстрое перо с анимацией кнопок, основанное на понравившейся мне публикации на Dribbble Даниэля Джеча.

Игровая кнопка с эффектом наведения

Кнопка, которую я создал для веб-сайта игры, полосы скользят слева направо при наведении курсора.

Цветные кнопки CSS

Коллекция различных типов кнопок CSS разного цвета.

Коллекция эффектов при наведении курсора на кнопки

Несколько примеров ярких эффектов наведения кнопки. Сейчас обновляю эту ручку. Работа в процессе…

Кнопка Blobs

Изначально я нашел эту кнопку на этом сайте - https: // isl.co / и воссоздал его.

См. Кнопку Pen Blobs автора suez (@suez) на CodePen.

Кнопка анимации CSS

Аккуратный и простой эффект наведения курсора мыши на кнопку.

Пуговицы наполовину полнее

Мне очень понравились кнопки в этом посте на Behance, поэтому я хотел попробовать сделать их для своего сайта. Они крутые злые.

Контактная кнопка

Контактная кнопка от Dribbble снята с использованием только CSS.

См. Кнопку «Контакт с ручкой» от ajerez (@ajerez) на CodePen.

Простая кнопка наведения

Простой многослойный эффект наведения тени на кнопку.

Эффекты при наведении курсора на кнопку

Некоторые эффекты наведения кнопки с использованием псевдоэлементов и границ.

Анимация контура кнопки при наведении курсора

На основе кнопок «Подробнее», которые можно найти здесь: http://kenjiendo.com/news/

Эффект наведения кнопки анимации

Стиль наведения кнопки CSS, вдохновленный Pokemon GO, создан для практики.

Пуговицы Ghost в стиле Star Trek LCARS

В одном из наших последних проектов с местной фирмой по информационной безопасности мы выбрали техническую тему. Эти кнопки навеяны компьютерным интерфейсом из Star Trek, с добавленными эффектами перехода при наведении курсора.

Анимированные кнопки CSS3

Экспериментальные кнопки CSS от Designify.me

CSS Интерактивные кнопки

Вдохновение для новых способов создания интерактивных кнопок с использованием linear-gradient, box-shadow и псевдоклассов!

Концепция анимированной кнопки-призрака с градиентом

Кнопка призрак. Анимированные градиентные границы и текст. Прозрачный фон.CSS анимация рисования линий. Обрезка кадра. Нет SVG. Чистый CSS.

Слайд-текст при анимации наведения

Это простой пример анимации простой кнопки.

Пузырьковый эффект кнопки

Эффект зависания с использованием трюков.

Простой способ создать анимацию наведения для кнопок с помощью CSS | автор: Erica N

Давайте начнем с создания разметки для двух кнопок.

  




The . Класс контейнера используется только для центрирования наших двух кнопок в целях презентации. Главное - это теги кнопок внутри контейнера div.

Каждая кнопка имеет два класса. Класс .btn обеспечит общий стиль для обеих кнопок, но классы .btn-1 и .btn-2 мы будем использовать для предоставления индивидуальных эффектов наведения.

Затем мы переходим к CSS, где мы можем стилизовать кнопки.

Затем мы создаем стиль для обеих кнопок.

 button.btn {
фон: прозрачный;
цвет: белый;
граница: 2 пикселя сплошного белого цвета;
размер шрифта: 20 пикселей;
межбуквенный интервал: 2 пикселя;
отступ: 25 пикселей 80 пикселей;
преобразование текста: прописные;
курсор: указатель;
дисплей: встроенный блок;
margin: 15px 30px; / * анимация и время переходов * / -webkit-transition: all 0.4s;
-моз-переход: все 0,4 с;
переход: все 0,4 с;
}

Теперь у нас есть обе кнопки, и мы можем сосредоточиться на анимации для каждой кнопки. Начнем с первой кнопки.

Наша первая кнопка проста. Все, что нам нужно, - это эффект плавного появления наведения, который изменит фон на белый, а текст - на черный.

 button.btn-1: hover {
background-color: white;
цвет: черный;
-webkit-transition: все 0,4 с;
-моз-переход: все 0,4 с;
переход: все 0,4 с;
}

Следующая кнопка, которую мы создадим, будет более сложной, но мы рассмотрим каждый блок кода CSS.

Если вы посмотрите на наш код выше, у второй кнопки есть скользящий фон.Чтобы убедиться, что скользящая анимация остается в пределах кнопки, мы создаем следующий блок CSS для нашего класса .btn-2 :

 button.btn-2 {
overflow: hidden;
позиция: относительная;
}

Конечно, когда мы наводим курсор на эту кнопку, мы хотим, чтобы текст был черным:

 button.btn-2: hover {
color: black;
}

Для создания белого анимационного фона мы используем псевдоэлемент : после вместе со свойством content , чтобы вставить рамку внутри кнопки.

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

 button.btn-2: после {
content: '';
позиция: абсолютная;
z-index: -1;
-webkit-transition: все 0,4 с;
-моз-переход: все 0,4 с;
переход: все 0,4 с;
ширина: 100%;
высота: 0;
верх: 0;
осталось: 0;
фон: #fff;
} button.btn-2: hover: after,
button.btn-2: active: after {
height: 100%;
}

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

Спасибо за внимание.

Стиль наведения, фокуса и активного состояния по-разному

16 октября 2019

Я стилизовал : hover , : focus и : active годами одинаково. Не могу вспомнить, когда я начала так укладывать. Вот код, который я всегда использую:

  // Не лучший подход.Я объясню почему в этой статье
.selector {
  &: навести,
  &: фокус,
  &: active {
    // Стили здесь
  }
}
  

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

Наведение, фокус и активное состояние должны иметь разные стили.

Причина проста: это разные государства!

Сегодня я хочу показать вам волшебный способ легко стилизовать все три состояния.

Начнем с : наведите курсор на .

Стилизация состояний при наведении

: hover срабатывает, когда пользователь наводит курсор мыши на элемент.

Состояния наведения обычно представлены изменением цвета фона (и / или цвета ) . Разница в состояниях не должна быть очевидной, потому что пользователи уже знают, что они на что-то ориентируются.

  кнопка {
  цвет фона: #dedede;
}

button: hover {
  цвет фона: #aaa;
}
  

Состояния фокуса стилей

: фокус активируется, когда элемент получает фокус.Элементы могут получать фокус двумя способами:

  1. Когда пользователи переходят в фокусируемый элемент
  2. Когда пользователи нажимают на элемент, на который можно сфокусироваться

Фокусируемые элементы:

  1. Ссылки ( )
  2. Кнопки (
  3. Элементы формы ( input , textarea и т. Д.)
  4. Элементы с tabindex

Вот несколько важных моментов, на которые следует обратить внимание:

  1. Пользователи не могут перейти к элементу с tabindex = "- 1" , но могут щелкнуть по нему.Щелчок вызывает фокус.
  2. В Safari и Firefox (Mac) щелчки не фокусируются на элементе
  3. Когда вы щелкаете ссылку ( ), фокус остается на ссылке, пока вы не уберете палец с мыши. Когда вы поднимаете палец, фокус перенаправляется в другое место, если href указывает на действительный id на той же странице.

Чтобы сфокусироваться, мы больше заботимся о том, чтобы пользователи переходили по элементам с помощью табуляции, чем нажимали на них.

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

В большинстве случаев стиль фокуса по умолчанию подходит. Если вы хотите создать собственный фокус, подумайте об этих четырех вещах:

  1. Добавление контура
  2. Создание анимации с движением
  3. Изменение цвета фона
  4. Изменение цвета

Поскольку background-color и color изменения часто сопровождают : hover , имеет смысл, что контуры или анимации должны сопровождать : focus .

Вы можете использовать комбинацию свойств контур , граница и box-shadow для создания удобных стилей фокуса. Я рассказываю, как это сделать, в разделе «Создание собственного стиля фокуса».

  кнопка {
  цвет фона: #dedede;
}

button: hover {
  цвет фона: #aaa;
}

button: focus {
  наброски: нет;
  box-shadow: 0 0 0 3px lightskyblue;
}
  

Стилизация активных состояний

Когда вы взаимодействуете с вещами в реальной жизни, вы ожидаете какой-то обратной связи.Например, если вы нажмете кнопку, вы ожидаете, что она будет нажата.

Этот отзыв полезен и для веб-сайтов. Вы можете стилизовать момент «нажатия кнопки» с помощью : active . : активный триггер срабатывает при взаимодействии с элементом . Здесь взаимодействие означает:

  1. Удерживая нажатой левую кнопку мыши на элементе (даже на несфокусируемом)
  2. Удерживание клавиши пробела (на кнопках)
  кнопка: активна {
  цвет фона: # 333;
  цвет границы: # 333;
  цвет: #eee;
}
  

Две странные вещи, на которые следует обратить внимание:

  1. Если удерживать нажатой клавишу «Пробел», активируется : активен на кнопках, но при удержании клавиши Enter - нет.
  2. Ввести триггеры ссылки, но не создать активное состояние. Пробел вообще не запускает ссылки.

Стили по умолчанию для ссылок

Ссылки имеют активный стиль по умолчанию. Они становятся красными при нажатии.

Взаимосвязь между активностью и фокусом

Когда вы удерживаете левую кнопку мыши на фокусируемом элементе, вы запускаете активное состояние . Вы также одновременно запускаете состояние фокуса .

Когда вы отпускаете левую кнопку мыши, фокус остается на элементе

👆 верно для большинства элементов, на которые можно сфокусироваться, кроме ссылок и кнопок.

Для ссылок:

  1. Когда вы удерживаете левую кнопку мыши: триггеры : активны и : фокус состояние в Firefox и Chrome Активны только триггеры в Safari (проверено только на Mac)
  2. Когда вы отпускаете левую кнопку мыши: : фокус остается на ссылке (если href ссылки не совпадает с id на той же странице). В Safari фокус возвращается к .

Для кнопок:

  1. Когда вы удерживаете левую кнопку мыши: триггеры : активны и : фокус состояния только в Chrome. Не запускает : фокус вообще в Safari и Firefox (Mac). Я писал об этом странном поведении здесь.

Если вы хотите, чтобы клики фокусировались на кнопках, вам нужно добавить этот JavaScript как можно раньше. (Что касается того, почему, вы можете прочитать статью, на которую я ссылался выше, для получения дополнительной информации).

  document.addEventListener ('click', event => {
  if (event.target.matches ('button')) {
    event.target.focus ()
  }
})
  

После получения этого кода поведение кнопок при нажатии становится:

  1. Когда вы удерживаете левую кнопку мыши: запускает : активен во всех браузерах. Триггеры : фокус только на Chrome.
  2. Когда вы отпускаете левую кнопку мыши: запускает : фокус на Safari и Firefox (Mac). : фокус остается на кнопке для других браузеров.
Поведение кнопки в Safari после добавления фрагмента кода JavaScript выше.

Теперь вы знаете о состояниях наведения, фокуса и активных состояний, я хочу поговорить о стилизации всех трех.

Волшебное сочетание

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

 . Элемент: hover,
.element: active {
  / * Изменить цвет фона / текста * /
}

.element: focus {
  / * Показать схему / *
}
  

Для пользователей мыши:

  1. Когда пользователь наводит курсор на элемент, цвет фона (и / или цвет ) изменяется.Они получают обратную связь.
  2. Когда пользователь щелкает элемент, отображается контур фокуса. Они получают обратную связь.

Для пользователей клавиатуры:

  1. Когда пользователь входит в элемент, отображается контур фокуса. Они получают обратную связь.
  2. Когда они взаимодействуют с элементом, цвет фона (и / или цвет ) изменяется. Они получают обратную связь.

Лучшее из обоих миров!

  1. Я не тестировал полностью магическую комбинацию. Это проверка правильности концепции. Буду признателен, если вы поможете мне с тестами и дадите мне знать, как дела.
  2. Если вы запускаете тесты, не используйте Codepen. Состояния фокуса для ссылок на Codepen странные. Если вы наводите курсор на ссылку, контур фокуса удаляется. Почему? Я не знаю. Иногда я думаю, что лучше всего протестировать подобные вещи без каких-либо необычных инструментов. Просто старый HTML, CSS, JS.

Немагическая (но может быть лучше) комбинация

Как я уже упоминал выше, нажатие на кнопки ведет себя странно в Safari и Firefox (Mac).Если вы добавили фрагмент кода JavaScript, который я вам показал, волшебная комбинация все еще работает. Но это не идеально.

Для Safari и Firefox (Mac) происходит следующее:

  1. Когда пользователи удерживают кнопку мыши нажатой, ничего не меняется.
  2. Когда пользователь поднимает кнопку мыши, элемент получает фокус

Если вы думаете, что этого достаточно, то волшебная комбинация работает. Вы можете остановиться здесь.

Но если вы думаете, что возможностей недостаточно, вам нужно стилизовать : hover , : focus и : active отдельно.

  .element: hover {
  / * Изменить цвет фона / текста * /
}

.element: active {
  / * Еще одно изменение цвета фона / текста * /
}

.element: focus {
  / * Показать схему / *
}
  
Поведение кнопки в Safari, если вы стилизовали все три состояния.

Вот и все! Надеюсь, вы узнали что-то сегодня!

Если вам понравилась эта статья, расскажите о ней другу! Поделитесь этим в Твиттере. Если вы заметили опечатку, я буду признателен, если вы сможете исправить ее на GitHub.