- CSS псевдокласс :active
- Версия
- Синтаксис
- Пример
- Пример
- Пример
- Поддержка браузера
- :active
- Пример
- Как пишется
- Селектор по тегу в состоянии :active
- Селектор по классу в состоянии :active
- Составной селектор в состоянии :active
- Селектор по id в состоянии :active
- Селектор по классу и его псевдоэлемент в состоянии :active
- Как понять
- Подсказки
- На практике
- Алёна Батицкая советует
- Обработка события click средствами CSS
- Примечание
- Используем чекбокс
- Плюсы
- Минусы
- Способ с :target
- Плюсы
- Минусы
- Способ с :focus
- Плюсы
- Минусы
- Способ с переходами
- Плюсы
- Минусы
- 5 последних уроков рубрики «CSS»
- Забавные эффекты для букв
- Реализация забавных подсказок
- Анимированные буквы
- Солнцезащитные очки от первого лица
CSS псевдокласс :active
Псевдокласс :active определяет стиль для активной ссылки или любого другого элемента. Он активируется пользователем.
Элемент активируется, когда пользователь нажимает на ссылку или элемент и отпускает кнопку мыши.
Псевдокласс :active используется для элементов и .
Псевдоклассы :link, :hover или :visited переопределяют стиль, установленный псевдоклассом :active .
Версия
Синтаксис
Пример
html> html> head> title>Заголовок документа title> style> a:active < background-color: #8ebf42; color: #666; > style> head> body> h2>Пример селектора :active h2> a href="https://www.w3docs.com/">w3docs.com a> body> html>
Пример
html> html> head> title>Заголовок документа title> style> a < color: #1c87c9; > a:active < background-color: #8ebf42; color: #eee; > style> head> body> h2>Пример селектора :active h2> p>Lorem Ipsum - это текст-"рыба", часто используемый в печати и вэб-дизайне. Lorem Ipsum является стандартной "рыбой" для текстов на латинице с начала XVI века. В то время некий безымянный печатник создал большую коллекцию размеров и форм шрифтов, используя Lorem Ipsum для распечатки образцов. Lorem Ipsum не только успешно пережил без заметных изменений пять веков, но и перешагнул в электронный дизайн. Его популяризации в новое время послужили публикация листов Letraset с образцами Lorem Ipsum в 60-х годах и, в более недавнее время, программы электронной вёрстки типа Aldus PageMaker, в шаблонах которых используется Lorem Ipsum. p> body> html>
В следующем примере нажмите на текст и увидите, как изменится цвет текста:
Пример
html> html> head> title>Заголовок документа title> style> div < padding: 30px; background-color: #8ebf42; color:#eee; > div:active < background-color: #666; color: #fff; > style> head> body> h2>Пример селектора :active h2> div> Lorem Ipsum - это текст-"рыба". div> body> html>
Поддержка браузера
:active
Псевдокласс :active позволяет задать стили для элемента, с которым происходит взаимодействие прямо сейчас. Например, можно задать кнопке стиль, который будет виден в тот краткий миг, когда на кнопке зажата клавиша мыши.
Пример
Скопировать ссылку «Пример» Скопировано
Сделаем объёмную кнопку, у которой будет меняться цвет фона и текста в активной фазе.
button padding: 2.5rem; border: 0; border-radius: 2.5rem; font-size: 2.5rem; background-color: #bada55; cursor: pointer; transition: background 0.3s, color 0.3s;> button:active color: white; background-color: purple;>
button padding: 2.5rem; border: 0; border-radius: 2.5rem; font-size: 2.5rem; background-color: #bada55; cursor: pointer; transition: background 0.3s, color 0.3s; > button:active color: white; background-color: purple; >
Как пишется
Скопировать ссылку «Как пишется» Скопировано
К любому селектору добавляем двоеточие и ключевое слово active .
Селектор по тегу в состоянии :active
Скопировать ссылку «Селектор по тегу в состоянии :active» Скопировано
a:active /* Стили */>
a:active /* Стили */ >
Селектор по классу в состоянии :active
Скопировать ссылку «Селектор по классу в состоянии :active» Скопировано
.link:active /* Стили */>
.link:active /* Стили */ >
Составной селектор в состоянии :active
Скопировать ссылку «Составной селектор в состоянии :active» Скопировано
li .link:focus /* Стили */>
li .link:focus /* Стили */ >
Селектор по id в состоянии :active
Скопировать ссылку «Селектор по id в состоянии :active» Скопировано
#id:active /* Стили */>
#id:active /* Стили */ >
Селектор по классу и его псевдоэлемент в состоянии :active
Скопировать ссылку «Селектор по классу и его псевдоэлемент в состоянии :active» Скопировано
.link::before:active /* Стили */>
.link::before:active /* Стили */ >
Как понять
Скопировать ссылку «Как понять» Скопировано
В момент нажатия на элемент при помощи кнопки мыши или клавиши клавиатуры этому самому элементу присваивается виртуальный класс :active , который можно стилизовать. За присвоение этого класса отвечает движок браузера, нам о самом процессе присвоения думать не нужно.
Подсказки
Скопировать ссылку «Подсказки» Скопировано
💡 Смену стилей между состояниями можно анимировать при помощи transition 🎉
💡 Часто, если дизайнер не позаботился об отрисовке состояния :active для кнопок, можно задать стили сразу и для наведения курсора и для активного состояния:
button:hover,button:active /* Стили */>
button:hover, button:active /* Стили */ >
На практике
Скопировать ссылку «На практике» Скопировано
Алёна Батицкая советует
Скопировать ссылку «Алёна Батицкая советует» Скопировано
🛠 Дизайнеры и верстальщики почему-то часто забывают про тот короткий промежуток времени, когда пользователь нажал кнопку мыши, но ещё её не отпустил. И не стилизуют состояние :active . Но «дьявол кроется в деталях», и если в вашем интерфейсе будут продуманы даже такие небольшие элементы, то он будет создавать ощущение опрятности и заботы о пользователе.
🛠 Если вы задаёте стили для разных состояний ссылок, то следует придерживаться определённого порядка в объявлении стилей: :link — :visited — :focus — :hover — :active .
Этот порядок легко запомнить в виде аббревиатуры LVFHA и мнемоники LoVe Fears HAte.
Обработка события click средствами CSS
В течении нескольких последних лет наблюдается удивительная экспансия языков клиентской части веб приложений, особенно HTML5 и CSS3.
Теперь можно выполнять множество операций, которые раньше были немыслимы без применения JavaScript и изображений, например, скругленные углы, адаптивные шаблоны, модульные сетки, прозрачные цвета и многое другое.
Но всегда не хватало возможности обрабатывать событие click средствами CSS. Некоторые специалисты полагают, что такой опции не должно быть, так как интерактивное взаимодействие с пользователем является полем действия для JavaScript. Их доводы разумны, но использование JavaScript даже для простых нажатий утомительно.
В настоящее время нет официальных средств CSS для обработки события click. Но тем не менее, существуют способы, которые можно использовать для «обнаружения» нажатия с помощью только CSS без JavaScript.
Примечание
Описанные способы не предназначены для «реальной жизни». Материалы урока следует рассматривать как основу для экспериментов. Тем более что некоторые методы плохо поддерживаются в браузерах. Назначение урока — прикоснуться к границам возможностей CSS.
Используем чекбокс
Наверняка вы уже встречались с данным методом. Это самый популярный метод для обработки события click средствами CSS.
Метод основан на использовании чекбокса. Данный элемент имеет бинарную сущность и может быть только в одном из двух состояний. Поэтому данный метод является вполне надежным способом для обработки событий click в CSS.
Здесь будет красный цвет. Или уже есть.
.to-be-changed < color: black; >input[type=checkbox]:checked ~ .to-be-changed
Метод основан на использовании псевдо-класса :checked и селектора ~ . Обратите внимание, что он будет работать и с селектором + . Сущность метод заключается в том, что “если чекбокс отмечен, то следующие элементы с классом .to-be-changed будет красным”.
Чекбокс выглядит не очень привлекательно. Но вы можете сделать внешний вид более интересным скрыв чекбокс и привязав к нему метку. Как-то вот так:
Здесь будет красный цвет. Или уже есть.
Итак, мы прячем чекбокс и используем метку для реагирования на событие click:
input[type=checkbox] < position: absolute; top: -9999px; left: -9999px; >label < display: block; background: #08C; padding: 5px; border: 1px solid rgba(0,0,0,.1); border-radius: 2px; color: white; font-weight: bold; >input[type=checkbox]:checked ~ .to-be-changed
У нас получилась кнопка, нажатие на которую меняет цвет текста в параграфе. Повторное нажатие на кнопку меняет цвет обратно.
(Обратите внимание, что существуют различные методы для скрытия чекбокса. Очевидный — применение display:none .)
Плюсы
- Бинарный, есть только два состояния — отмечен или не отмечен
- Повторное нажатие приводит к восстановлению состояния (данный пункт может оказаться минусом)
- Позволяет организовать обработку связанных событий click (если первый чекбокс отмечен и второй чекбокс отмечен, то выполняем следующее действие)
Минусы
- Элементы должны иметь общего предка
- Требуется дополнительная разметка HTML (input, label и так далее)
- Требуется дополнительные действия для работы на мобильных браузерах
Способ с :target
Есть другой способ с использованием псевдо-класса :target. Данный псевдо-класс похож на псевдо-класс :hover тем, что соответствует только определенным условиям.
Специальное событие для псевдо-класса :target зависит от “идентификатора фрагмента”. Если говорить просто, то данный псевдо-класс ссылается на хэштег, который располагается в конце URL, и становится активным, когда хэштег и ID совпадают.
Нажми меня!Здесь будет красный цвет. Или уже есть.
.to-be-changed < color: black; >.to-be-changed:target
При нажатии на ссылку ( href=»#id» ) изменяется URL и осуществляется переход по метке #id на странице. В данный момент элемент с идентификатором id может быть выделен с помощью псевдо-класса :target.
Плюсы
Минусы
- Мусор в истории браузера
- Происходит прокручивание страницы
- Требуется тег ссылки или операции с URL для включения хэштега
- Можно воздействовать только на один элемент (так как ID является уникальным)
- Нет способов возврата к исходному состоянию без использования другого хэштега, ссылки или операций с URL
Способ с :focus
Продолжим наш обзор способом с использованием другого псевдо-класса — :focus. Идея почти такая же, как и в предыдущем случае, за исключением того, что не предполагается изменения URL. Здесь мы полагаемся на фокус ввода на определенном элементе.
Когда вы находитесь на странице, то с помощью клавиши табуляции можно перемещаться от одного элемента к другому. Такой метод очень удобен при работе с формами для перехода между элементами без использования мыши. Также метод применяется для навигации слабовидящими людьми по странице.
Важно, что некоторые элементы могут получать фокус ввода, например, ссылки, параграфы, поля ввода и многие другие. Вам только нужно установить для них атрибут tabindex с числовым значение для них.
Нажми меня!Здесь будет красный цвет. Или уже есть.
Когда происходит нажатие на элементе спан, или переключение на него с помощью клавиши табуляции, он получает фокус ввода и соответствует псевдо-классу :focus. Селектор соседей делает остальную работу. Если по каким-то причинам использовать атрибут tabindex не требуется, то можно просто установить ссылку с адресом #.
Плюсы
Минусы
- Требуется либо элемент с фокусом, либо атрибут tabindex
- Соответствие возникает только при наличии фокуса ввода (нажатие где-нибудь в другом месте страницы смешивает алгоритм работы)
Способ с переходами
Вероятно, данный метод является самым «грязным» способом обработки события click в CSS.
Идея заключается в «хранении» стиля CSS в переходе CSS. Используем псевдо-бесконечную задержку, чтобы предотвратить возврат в исходное состояние. Звучит сложно, но в действительности очень просто в реализации.
Нажми меня!Здесь будет красный цвет. Или уже есть.
.to-be-changed < transition: all 0s 9999999s; >span:active ~ .to-be-changed
Задержка составляет примерно 116 дней. Не бесконечность, но некое ее подобие для наших условий. Поэтому изменения сохраняются и нет возврата к исходному состоянию.
Плюсы
Минусы
- Плохая поддержка в браузерах (нет в IE9 и Opera Mini)
- Работает только со значениями, которые можно использовать с переходами
- Нет способов возврата к исходному состоянию
- Нет реальной бесконечности ожидания (если ваш проект предполагает ожидание более 116 дней)
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: tympanus.net/codrops/2012/12/17/css-click-events/
Перевел: Сергей Фастунов
Урок создан: 18 Декабря 2012
Просмотров: 132605
Правила перепечатки
5 последних уроков рубрики «CSS»
Забавные эффекты для букв
Реализация забавных подсказок
Небольшой концепт забавных подсказок, которые реализованы на SVG и anime.js. Помимо особого стиля в примере реализована анимация и трансформация графических объектов.
Анимированные буквы
Солнцезащитные очки от первого лица
Прикольный эксперимент веб страницы отображение которой осуществляется “от первого лица” через солнцезащитные очки.