Heim  >  Artikel  >  Web-Frontend  >  Wie können Sie Nur-Tastatur-Fokusstile mit :focus-visible implementieren?

Wie können Sie Nur-Tastatur-Fokusstile mit :focus-visible implementieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-02 20:46:02159Durchsuche

How Can You Implement Keyboard-Only Focus Styles Using :focus-visible?

Fokusstile nur für die Tastatur in modernen Browsern

In modernen Browsern kann die Pseudoklasse :focus-visible verwendet werden, um Tastatur-Fokusstile zu erreichen. nur Fokusstile. Diese Pseudoklasse gleicht fokussierte Elemente ab, wenn der Benutzer mit der Seite über eine Tastatur oder ein anderes nicht zeigendes Gerät interagiert, und zeigt den Fokus an, wenn dies dem Benutzer hilft. Dadurch werden Fokusringe unterdrückt, wenn ein Benutzer durch Klicken oder Tippen interagiert.

Benutzerdefiniertes Fokus-Styling mit :focus-visible

Um benutzerdefinierte Fokusstile bei gleichzeitiger Beibehaltung zu implementieren Kompatibilität mit älteren Browsern, befolgen Sie diesen Ansatz:

<code class="css">button:focus {
  /* Default focus styles */
}

button:focus:not(:focus-visible) {
  /* Undo default focus styles */
}</code>

In Browsern, die :focus-visible unterstützen, überschreibt die zweite Regel die in der ersten Regel definierten Fokusstile, wenn :focus-visible inaktiv ist. Dadurch wird sichergestellt, dass Fokusstile nur angewendet werden, wenn :focus-visible aktiv ist.

Originallösung für ältere Browser

Für Browser, die :focus-visible nicht unterstützen, Ein alternativer Ansatz beinhaltet die Verwendung eines zusätzlichen Elements innerhalb jedes fokussierbaren Elements, wie in Roman Komarovs Artikel vorgeschlagen:

<code class="css">/* Root button styling */
.btn {
  all: initial;
  display: inline-block;
}

/* Inner content element */
.btn__content {
  background: orange;
  cursor: pointer;
  display: inline-block;
}

/* Custom focus styles on inner element */
.btn:focus > .btn__content {
  box-shadow: 0 0 2px 2px #51a7e8;
  color: lime;
}</code>

Indem die Fokusstile auf einem inneren Element platziert werden, während Standardkonturen sowohl auf dem übergeordneten als auch auf dem inneren Element entfernt werden Nach dem Hinzufügen des benutzerdefinierten Fokusstils wenden nur Tastaturinteraktionen Fokusstile auf das primäre sichtbare Element an.

Das obige ist der detaillierte Inhalt vonWie können Sie Nur-Tastatur-Fokusstile mit :focus-visible implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn