Фокусировка: focus/blur

Browser compatibility

The compatibility table on this page is generated from structured data. If you’d like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.

Update compatibility data on GitHub


Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
Chrome Full support 67 Disabled Edge Full support 79 Disabled Firefox Full support 4 Alternate Name IE No support No Opera Full support 54 Disabled Safari No support No WebView Android No support No Chrome Android Full support 67 Disabled Firefox Android Full support 4 Alternate Name Opera Android Full support 48 Disabled Safari iOS No support No Samsung Internet Android No support No

О Ford Focus

Ford Focus — это семейный автомобиль действительно потрясший рынок, когда впервые появился в 1998 году. Двадцать лет спустя, а это четыре поколения автомобилей, фокус все еще можно найти на вершине рынка семейных авто.

Большие изменения для Focus Mk4 заключаются в увеличении пространства салона и экономичности. Общий вид последнего фокуса сочетает в себе элементы предыдущей модели с элементами дизайна от меньшей Фиесты . Приборная панель похожа по силуэту на новейший Mercedes A-Class, но имеет все текущие дизайнерские подсказки Ford на дисплее.

У автомобиля более длинная колесная база, которая увеличивает пространство внутри, и кузов был перепроектирован под неё так, чтобы выделить как можно больше места. В результате нынешний фокус имеет на много более вместительный багажник, чем авто всех предыдущих поколений. А еще оснащение автомобиля электрическим стояночным тормозом («ручником») освобождает место между передними сиденьями.

Мощность 1,0-литрового двигателя EcoBoost, составляет 123 л. с. в стандартной компоновке, а в версиях с 48-вольтовой гибридной установкой, 123 л. с. и 153 л. с. Маломощные автомобили используют либо шестиступенчатую механическую, либо восьмиступенчатую автоматическую коробку передач, в то время как версии мощностью 153 л. с. предлагаются исключительно с механической коробкой передач. Спортивная 2,3-литровая модель ST выдает 280 л. с. через шестиступенчатую механическую или семиступенчатую автоматическую коробку передач.

Все модели Focus имеют передний привод. В будущем появится 48-вольтовый «мягкий гибридный» фокус, хотя в настоящее время нет никаких планов по замене предыдущего поколения Focus Electric.

Модельный ряд Ford Focus был пересмотрен в конце 2019 года. ST-Line, ST-Line X, Titanium, Titanium X и Vignale составляют основную часть стандартного ассортимента, а Active, Active X и Active X Vignale представляют сегмент внедорожников. Спортивная модель ST также осталась доступна, однако полновесного RS больше нет.

Авто стандартной комплектации поставляется с восьмидюймовой информационно-развлекательной системой Ford SYNC, которая поддерживает Apple CarPlay и Android Auto, а также с 16-дюймовыми легкосплавными дисками и автоматическими фарами. Кроме того, в комплектацию входят лобовое стекло с обогревом Quickclear, круиз-контроль, автоматическое экстренное торможение и предупреждение о смене полосы движения.

Ford Focus ST

Для спортивных моделей ST-Line предусмотрены 17-дюймовые легкосплавные диски и более спортивные передний и задний бамперы, а также авто комплектуются бесключевой кнопкой запуска двигателя, спортивный руль и легкосплавные педали. На шаг выше модель ST-Line X добавляет более крупные 18-дюймовые колеса, автоматические дворники и затемняющееся зеркало заднего вида, электросиденье водителя с регулировкой в шести направлениях, двухзонный климат-контроль и модернизированную систему SYNC 3 с голосовым управлением.

Ford Focus Titanium

Titanium берет некоторые опции от ST-Line X, такие как автоматические дворники и датчики парковки, но он остается на 16-дюймовых легкосплавных дисках. Он также получает бесключевой вход и запуск двигателя и светодиодные задние фонари. Titanium X увеличивает размер колеса до 17 дюймов и привносит электрическую регулировку сиденья водителя, а также заднее защитное стекло.

Ford Focus Vignale

Модельный ряд Vignale оснащен 18-дюймовыми колесными дисками, светодиодными фарами, проекционным дисплеем (HUD), обогревом руля, полностью кожаной отделкой сидений и стереосистемой B&O, которая также обеспечивает активное шумоподавление.

Включаем фокусировку на любом элементе: tabindex

Многие элементы по умолчанию не поддерживают фокусировку.

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

С другой стороны, элементы форматирования , , – по умолчанию не могут получить фокус. Метод не работает для них, и события никогда не срабатывают.

Это можно изменить HTML-атрибутом .

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

То есть: если у нас два элемента, первый имеет , а второй , то находясь в первом элементе и нажав Tab – мы переместимся во второй.

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

При совпадающих элементы перебираются в том порядке, в котором идут в документе.

Есть два специальных значения:


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

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

  • позволяет фокусироваться на элементе только программно. Клавиша Tab проигнорирует такой элемент, но метод будет действовать.

Например, список ниже. Кликните первый пункт в списке и нажмите Tab:

Порядок такой: . Обычно не поддерживает фокусировку, но включает её, а также события и стилизацию псевдоклассом .

Свойство тоже работает

Мы можем добавить из JavaScript, используя свойство . Это даст тот же эффект.

Dutch[edit]

Nounedit

focus m (plural )

  1. (optics, physics)
    Zij plaatste een convexe lens op de focus.
    She placed a convex lense on the focus.
    Synonym:
  2. () , centre
    Die jodocus heeft geen focus.
    That clown doesn’t have any focus.
  3. (linguistics)
    Focus is een belangrijk begrip in de informatiestructuur van zinnen.
    Focus is an important concept in the information structure of sentences.

Descendantsedit

Afrikaans: fokus.mw-parser-output .desc-arr{cursor:help}.mw-parser-output .desc-arr{font-size:.7em;vertical-align:super}

  1. Philippa, Marlies; Debrabandere, Frans; Quak, Arend; Schoonheim, Tanneke; van der Sijs, Nicoline (2003–2009) Etymologisch woordenboek van het Nederlands (in Dutch), Amsterdam: Amsterdam University Press

Люди

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

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

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

Myth of meta-tag scale fixes.

All such viewport settings will not prevent the input-focus zoom if you are zoomed-out. These will also not over-ride any other html, body, or element sizing that would push the window to width wider than the screen.

Primary Cause

Using a window or body size larger than the device screen dimensions.

Consider the standard screen-size of most of the Galaxy line of Android smartphones: 360 x 650. If your document body, or window, is defined to be larger than that (let’s say 1024 wide to make it obvious), a few things may happen:

  1. The browser may auto-zoom out, to fit the width to the screen.

    1. The user may do the above.
    2. You may have done the above.
  2. The browser will restore the zoom-level on subsequent visits to the page.
  3. You’re now viewing the content at ~0.35x zoom.

Initial State 1x

When loaded, the page won’t fit. Some browsers may zoom-out to fit the window, but the user most certainly will. Additionally, if you zoomed-out on this page once, the browser will store the zoom-level.

Zoom Out to Fit 0.35x

Once zoomed out, the width will fit nicely, and a page with more vertical area will fill out the screen quite nicely… but…

Notice that the browser is now in a state where text and input (sized for normal 1x zoom) would be way too small to read, thus triggers a usability behavior of zooming on the input fields when they get focus.

Zoom on Input-Focus 1.5x

Typical behavior in the above case, is to zoom to 1.5x, to ensure input visibility. The result (if you’ve styled everything to look better when zoomed-out, or for the larger screen) is less than desirable.

Solution 1

Use a combination of css media rules, device-detection, or whatever best suits your situation. Set the window and body to a size that fills the screen-space, without exceeding it.

  • This is why so many people have success with forcing input text-size to 16px;

    • once you do that, its clear that you’re WAY zoomed out.
    • it also has the added benefit of tricking the browser into allowing slightly zoomed out windows to not trigger the focus-zoom.

Solution 2

Use the meta viewport, but then be careful with css widths.


  • When using this method, you must do one of the following:

    • Only use percentages for widths.
    • Define an em width, and only use em and % for widths.
    • see Solution 1 for using px widths.

jQuery.mobile

фокус II

В Викиданных есть лексема фокус (L175402).

Морфологические и синтаксические свойства

падеж ед. ч. мн. ч.
Им. фо́кус фо́кусы
Р. фо́куса фо́кусов
Д. фо́кусу фо́кусам
В. фо́кус фо́кусы
Тв. фо́кусом фо́кусами
Пр. фо́кусе фо́кусах

фо́-кус

Существительное, неодушевлённое, мужской род, 2-е склонение (тип склонения 1a по классификации А. А. Зализняка).

Корень: -фокус-.

Семантические свойства

Значение

  1. искусный трюк, основанный на обмане зрения или внимания и выполняемый при помощи хитрости, проворства или ловкости ◆ Отсутствует пример употребления (см. рекомендации).

Гипонимы

Этимология

Из лат.  «очаг», далее из праиндоевр. *bhok’- «пламя» . Русск. фокус — уже у Петра I; заимств. через нем. Fokus. Использованы данные словаря М. Фасмера. См. Список литературы.

Methods focus/blur

Methods and set/unset the focus on the element.

For instance, let’s make the visitor unable to leave the input if the value is invalid:

It works in all browsers except Firefox (bug).

If we enter something into the input and then try to use Tab or click away from the , then returns the focus back.

Please note that we can’t “prevent losing focus” by calling in , because works after the element lost the focus.

JavaScript-initiated focus loss

A focus loss can occur for many reasons.

One of them is when the visitor clicks somewhere else. But also JavaScript itself may cause it, for instance:

  • An moves focus to itself, so it causes the focus loss at the element ( event), and when the is dismissed, the focus comes back ( event).
  • If an element is removed from DOM, then it also causes the focus loss. If it is reinserted later, then the focus doesn’t return.

These features sometimes cause handlers to misbehave – to trigger when they are not needed.

The best recipe is to be careful when using these events. If we want to track user-initiated focus-loss, then we should avoid causing it ourselves.

фокус I

В Викиданных есть лексема фокус (L175401).

Морфологические и синтаксические свойства

падеж ед. ч. мн. ч.
Им. фо́кус фо́кусы
Р. фо́куса фо́кусов
Д. фо́кусу фо́кусам
В. фо́кус фо́кусы
Тв. фо́кусом фо́кусами
Пр. фо́кусе фо́кусах

фо́-кус

Существительное, неодушевлённое, мужской род, 2-е склонение (тип склонения 1a по классификации А. А. Зализняка).

Корень: -фокус-.

Семантические свойства

Значение

  1. физ. точка, в которой пересекаются световые лучи ◆ Астигматизм― невозможность схождения всех лучей в одной точке, в одном фокусе. Н. В. Папушина, О. В. Филипенко, «Оптическая система глаза: интегрированный урок по биологии и физике», 2003 г. (цитата из Национального корпуса русского языка, см. )
  2. фотогр. точка, в которой фотографируемый объект получает отчётливое изображение на снимке ◆ Отсутствует пример употребления (см. рекомендации).
  3. матем. особая точка в коническом сечении ◆ Отсутствует пример употребления (см. рекомендации).
  4. мед. очаг болезненного процесса в организме ◆ Отсутствует пример употребления (см. рекомендации).
  5. перен. центр, средоточие чего-либо ◆ Отсутствует пример употребления (см. рекомендации). (цитата из Национального корпуса русского языка, см. )
  6. комп. состояние элемента оконного интерфейса, при котором этот элемент воспринимает команды, подаваемые с помощью клавиатуры, мыши и т. п. ◆ Отсутствует пример употребления (см. рекомендации).

Гипонимы

  1. автофокус

Родственные слова

Ближайшее родство
  • существительные: фокусировка, фокусирование
  • прилагательные: фокусный, фокальный, сфокусированный, расфокусированный
  • глаголы: фокусировать, фокусироваться, сфокусировать, сфокусироваться
  • наречия: фокально

Этимология

Из лат.  «очаг», далее из праиндоевр. *bhok’- «пламя» . Русск. фокус — уже у Петра I; заимств. через нем. Fokus. Использованы данные словаря М. Фасмера. См. Список литературы.

точка, в которой пересекаются световые лучи
  • en: focus
  • sv: brännpunkt

Взгляды

У людей также есть мнения. К сожалению, порой эти мнения не подкреплены знаниями. Среди людей, не занимающихся доступностью, господствует мнение, что стили фокуса «безобразны», и многие дизайнеры и разработчики удаляют их ради внешнего лоска. А порой они даже не подозревают, что распространяют чужое мнение — многие CSS-сбросы включают глобальное удаление стилей фокуса, и включаются в проект в качестве фундаментальной зависимости, как что-то само собой разумеющееся.

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

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

Псевдокласс срабатывает, когда браузер определил, что произошло событие фокуса, и специальные встроенные эвристики подсказали ему, что имел место ввод без указателя. Или, если не такими мудрёными словами — он показывает стили для фокуса, если элемент активирован не курсором мыши и не пальцем на сенсоре.

Недавно Chromium заявил о своём намерении реализовать . Несмотря на , . Вместе с они находятся в редакторском черновике селекторов четвёртого уровня, и со временем их начнут поддерживать все основные браузеры.

Вы можете знать под другим названием . Так, в виде псевдоселектора с префиксом, эту же идею реализовала Mozilla, еще за семь лет до предложения . В отличие от других браузерных префиксов CSS, нам не придётся беспокоиться о поддержке авторасстановки префиксов! Firefox признает как объявление , так и , гарантируя, что между двумя браузерами будет паритет для наших названий селекторов.

Шаг вперёд, шаг назад


С браузерной поддержкой не всё гладко — одними лишь Chrome и Firefox веб не ограничивается. Пусть полифил отлично справляется там, где нет нативной поддержки, мы всё равно загружаем лишние данные, получаем дополнительную сложность в поддержке и более хрупкий код.

Также стоит отметить, что теперь нет такого четкого противопоставления двух классов устройств по типу ввода, как было раньше. Флагманский компьютер Surface от Microsoft предлагает клавиатуру, трекпад, стилус, камеру, голос и сенсорную функциональность из коробки. Исследование использования скринридеров WebAIM в 2017 г. показало, что чаще чем вы думаете. Эвристика — это хорошо, но как и аналитика, она не даёт полной картины.

Стоит учесть еще и то, что пользователям с мышкой тоже бывают нужны стили для фокуса. Эти стили — чёткий и однозначный признак интерактивности, что даёт большое преимущество людям с плохим зрением, когнитивными проблемами, и людям, которые не очень дружат с техникой. Особо продвинутые пользователи, которые не понаслышке знают, что скринридеры и горячие клавиши — это как Vim по сравнению с графическими оболочками, захотят, чтобы состояние фокуса было очевидным, ведь они порхают по экрану, используя клавиатуру.

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

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

Если есть желание продвинуться в этой теме ещё дальше, дизайнер интерфейсов Кэйтлин Джийер отлично написала про индикаторы фокуса.

Did You Know?

Trivia

Margot Robbie was vacationing with her brother on an island in Croatia when she got the call that the directors wanted her to audition. She had arrived at the hotel at 6 a.m., and needed to catch a flight the same day. She packed everything in 20 minutes and took a catamaran to the main island, then a bus to the airport. She waited in the airport for six hours, flew to France, then got a six-hour flight to New York. When she arrived in New York, she found out her luggage had been lost. However, she got to the audition on time, wearing denim shorts, a t-shirt, and no makeup. When Will Smith arrived late, saying he «was coming from Queens», Robbie said «Yeah? Well, I just came from an island off Croatia and I’m here on time.» Robbie believes that reply got her the role. See more »

Goofs

The stake in «double or quits», as used in the Super Bowl scene, should not be twice the previous stake, it’s the same as the previous stake. Being $X down, another stake of $X will leave you either $2X down on loss (double), or $0 down on victory (quits). Were the new stake to be twice, you’d end up either $3X down, or $X up. Both characters are inveterate gamblers, so shouldn’t muddle their terminology so. See more »

Quotes

Nicky: You see, there’s a science to getting people to trust you. With women, it’s all about emotion. Connection. That you feel the emotion as strongly as they do. They’ve been dreaming about that shit ever since they were little girls. Nicky: With her it was shared history. A friendly face. Set her off balance. Helps diffuse aggression. Start discussing emotional shit. They’re disarmed. Now they’re open. You know you got ’em when they start to unconsciously mimic you. A head nod. A hand gesture. It means … See more »

Accessibility concerns

Low vision

Make sure the visual focus indicator can be seen by people with low vision. This will also benefit anyone use a screen in a brightly lit space (like outside in the sun). WCAG 2.1 SC 1.4.11 Non-Text Contrast requires that the visual focus indicator be at least 3 to 1.

Accessible Visual Focus Indicators: Give Your Site Some Focus! Tips for Designing Useful and Usable Focus Indicators

Cognition

It may not be obvious as to why the focus indicator is appearing and disappearing if a person is using mixed forms of input. For users with cognitive concerns, or who are less technologically literate, this lack of consistent behavior for interactive elements may be confusing.

Focus Lock

а какие же ваши предложения

  • focus-manager — простой focus-manager с простым и ванильным API и отличным примером. Есть пара минусов
  • ToleFocus — какой-то монстр, от которого бежать хочется.
  • react-focus-trap — настолько простой, что возвращает фокус только в начало.
  • Focus manager из AUI, но кто раньше слышал про AUI?
  • focus-trap, он же focus-trap-react который был использован в WAI-ARIA демке в начале статьи. И который по дефолту выключается по Esc и вообще не очень правильно использует DOM-API

7 бед = +1 новый велосипедfocus-lockdom-focus-lockreact-focus-lockvue-focus-lock

  • К сожалению все решения(кроме focus-trap/lock) совершенно полностью игнорируют tabIndex и становятся полностью неработоспособными если один умный програмист сломает порядок таббания. Случай, конечно, немного синтетический, но вполне реальный. К моему большому большому сожалению.
  • Из всех решений (кроме focus-trap/lock и react-focus-trap) можно без проблем табнуться в сафари(JFYI: сафари различает Tab и Opt+Tab). И если фокус единожды покинет ловушку — назад его уже никто не вернет.
  • focus-trap, который так хорошо везде работает, делает это потому что перехватывает и эмулирует Tab, те полностью игнорирует настройки того же Safari пунктом выше.
  • Все решения(кроме focus-lock и BluePrint.js) по входу селектят первый элемент, а не элемент с автофокусом. PS: focus-trap ищет элемент с атрибутом initialFocus. С чего бы?

codesandbox.io/s/jvl0k6zyk3найдите разницуcodesandbox.io/s/l5qlpxqvnq

Usage

2. Update your CSS

We suggest that users selectively disable the default focus style by selecting for the case when the polyfill is loaded and is not applied to the element:

/*
  This will hide the focus indicator if the element receives focus via the mouse,
  but it will still show up on keyboard focus.
*/
.js-focus-visible :focus:not(.focus-visible) {
  outline: none;
}

If there are elements which should always have a focus ring shown, authors may explicitly add the class. If explicitly added, it will not be removed on .

Alternatively, if you’re using a framework which overwrites your classes (#179), you can rely on the and attributes.

 :focus:not() {
  outline: none;
}

How it works

The script uses two heuristics to determine whether the keyboard is being (or will be) used:

  • a event immediately following a event where the key pressed was either , , or an arrow key.

  • focus moves into an element which requires keyboard interaction, such as a text field

    NOTE: this means that HTML elements like or will always match the :focus-visible selector, regardless of whether they are focused via a keyboard or a mouse.

  • TODO: ideally, we also trigger keyboard modality following a keyboard event which activates an element or causes a mutation; this still needs to be implemented.

Dependencies

<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=Element.prototype.classList"></script>

Shadow DOM

It could be very expensive to apply this polyfill automatically to every shadow root that is created in a given document, so the polyfill ignores shadow roots by default. If you are using Shadow DOM in a component, it is possible to apply this polyfill imperatively to the component’s shadow root:

// Check for the polyfill:
if (window.applyFocusVisiblePolyfill != null) {
  window.applyFocusVisiblePolyfill(myComponent.shadowRoot);
}

Lazy-loading

When this polyfill is lazy-loaded, and you are applying the polyfill to a shadow root with JavaScript, it is important to know when the polyfill has become available before trying to use it.

In order to act at the right time, you can observe the global event:

window.addEventListener('focus-visible-polyfill-ready',
    () => window.applyFocusVisiblePolyfill(myComponent.shadowRoot),
    { once:  true });

Important: this event is only intended to support late application of the polyfill in lazy-loading use cases. Do not write code that depends on the event firing, as it is timing dependent and only fired once. If you plan to lazy-load the polyfill, it is recommended that you check for it synchronously (see example above under «Shadow DOM») and listen for the event only if the polyfill isn’t available yet.

Backwards compatibility

Until all browsers ship developers will need to use it defensively to avoid accidentally removing focus styles in legacy browsers. This is easy to do with the polyfill.

/*
  This will hide the focus indicator if the element receives focus via the mouse,
  but it will still show up on keyboard focus.
*/
.js-focus-visible :focus:not(.focus-visible) {
  outline: none;
}

/*
  Optionally: Define a strong focus indicator for keyboard focus.
  If you choose to skip this step then the browser's default focus
  indicator will be displayed instead.
*/
.js-focus-visible .focus-visible {
  …
}
/*
  Provide basic, default focus styles.
*/
button:focus {
  …
}

/*
  Remove default focus styles for mouse users ONLY if
  :focus-visible is supported on this platform.
*/
button:focus:not(:focus-visible) {
  …
}

/*
  Optionally: If :focus-visible is supported on this
  platform, provide enhanced focus styles for keyboard
  focus.
*/
button:focus-visible {
  …
}

In the future, when all browsers support , the snippets above will be unnecessary. But until that time it’s important to be mindful when you use and to ensure you always have a fallback strategy.

Описание

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

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

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

Замечания по использованию: на сенсорных экранах  проблемный или не работает

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

Examples

Focus on a text field

JavaScript

focusMethod = function getFocus() {           
  document.getElementById("myTextField").focus();
}

HTML

<input type="text" id="myTextField" value="Text field.">
<p></p>
<button type="button" onclick="focusMethod()">Click me to focus on the text field!</button>

JavaScript

focusMethod = function getFocus() {          
  document.getElementById("myButton").focus();
}

HTML

<button type="button" id="myButton">Click Me!</button>
<p></p>
<button type="button" onclick="focusMethod()">Click me to focus on the button!</button>

JavaScript

focusScrollMethod = function getFocus() {          
  document.getElementById("myButton").focus({preventScroll:false});
}
focusNoScrollMethod = function getFocusWithoutScrolling() {          
  document.getElementById("myButton").focus({preventScroll:true});
}

HTML

<button type="button" onclick="focusScrollMethod()">Click me to focus on the button!</button>
<button type="button" onclick="focusNoScrollMethod()">Click me to focus on the button without scrolling!</button>

<div id="container" style="height: 1000px; width: 1000px;"> 
<button type="button" id="myButton" style="margin-top: 500px;">Click Me!</button>
</div>

HTML Tags

<!—><!DOCTYPE><a><abbr><acronym><address><applet><area><article><aside><audio><b><base><basefont><bdi><bdo><big><blockquote><body><br><button><canvas><caption><center><cite><code><col><colgroup><data><datalist><dd><del><details><dfn><dialog><dir><div><dl><dt><em><embed><fieldset><figcaption><figure><font><footer><form><frame><frameset><h1> — <h6><head><header><hr><html><i><iframe><img><input><ins><kbd><label><legend><li><link><main><map><mark><meta><meter><nav><noframes><noscript><object><ol><optgroup><option><output><p><param><picture><pre><progress><q><rp><rt><ruby><s><samp><script><section><select><small><source><span><strike><strong><style><sub><summary><sup><svg><table><tbody><td><template><textarea><tfoot><th><thead><time><title><tr><track><tt><u><ul><var><video>

Стилизация активного состояния (:active)

Вызывается это состояние, когда вы взаимодействуете с элементом

  1. Удержание левой кнопки мыши на элементе (даже когда он не в фокусе)
  2. Удержание кнопки пробела (на кнопках)
  1. Удержание пробела вызывает состояние у кнопок (<button>), но при удержании Enter этого не происходит
  2. Enter запускает ссылки но не вызывает активное состояние. Пробел не запускает ссылки вообще

Взаимосвязь между :active и :focus

Для ссылок:

  1. При удержании левой кнопки мыши в Firefox и Chrome вызываются состояния и . В Safari – только состояние (проверено только на Mac OS)
  2. Если отпустить кнопку мыши, остаётся на ссылке (если атрибут не ссылается на на этой же странице). В Safari фокус возвращается на

Для кнопок:

  1. При удержании кнопки мыши, вызывается во всех браузерах, только в Chrome
  2. Если отпустить кнопку мыши, вызывается в Safari и Firefox (Mac OS). остаётся на кнопке во всех браузерах

Поведение кнопок в Safari после добавления фрагмента JS-кода


С этим читают