Heim > Web-Frontend > CSS-Tutorial > Hauptteil

Wie können Sie :hover-CSS-Stile auf Touch-Geräten effektiv deaktivieren?

Patricia Arquette
Freigeben: 2024-10-30 02:21:02
Original
158 Leute haben es durchsucht

How Can You Effectively Disable :hover CSS Styles on Touch Devices?

Ignorieren von :hover-CSS-Stilen auf Touch-Geräten

Bei der Entwicklung von Websites ist es wünschenswert, :hover-CSS-Deklarationen für Touch-Geräte zu entfernen oder zu ignorieren. da diese Deklarationen umständlich und unnötig sein können.

Schnell und schmutzig: Verwendung von JavaScript

Ein Ansatz besteht darin, JavaScript zu verwenden, um alle Stilregeln zu entfernen, die :hover enthalten. Diese Methode ist mit älteren Browsern kompatibel und erfordert keine Änderung des CSS.

<code class="javascript">function hasTouch() {
  // Check for various touch event APIs.
  ...
}

if (hasTouch()) {
  // Loop through stylesheets and remove :hover rules.
  ...
}</code>
Nach dem Login kopieren

Einschränkungen:

  • Stylesheets müssen auf derselben Domain gehostet werden.
  • Gemischte Maus- und Touch-Geräte können immer noch :hover-Ereignisse auslösen, die sich negativ auf die Benutzererfahrung auswirken.

Nur ​​CSS: Medienabfragen

Alternativ können Sie Medienabfragen verwenden, um :Hover-Stile für bestimmte Geräte zu deaktivieren.

<code class="css">@media (hover: none) {
  a:hover {
    color: inherit;
  }
}</code>
Nach dem Login kopieren

Einschränkungen:

  • Erfordert Medienabfragen, die nicht vorhanden sind wird von allen Browsern unterstützt.
  • Funktioniert nicht auf gemischten Maus- und Touch-Geräten.

Das Robusteste: JavaScript-Erkennung

Für die Zuverlässigste Lösung: Erkennen Sie Berührungsereignisse mithilfe von JavaScript und stellen Sie :hover-Regeln eine benutzerdefinierte Klasse voran.

<code class="css">body.hasHover a:hover {
  color: blue;
}</code>
Nach dem Login kopieren
<code class="javascript">function hasTouch() {
  // Check for various touch event APIs.
  ...
}

if (!hasTouch()) {
  document.body.className += ' hasHover';
}</code>
Nach dem Login kopieren

Diese Methode überwindet die Einschränkungen reiner CSS-Ansätze, kann aber dennoch Probleme bei gemischten Maus- und Mausbewegungen verursachen Touch-Geräte.

Um dieses Problem zu beheben, implementieren Sie einen ausgefeilteren Ansatz, der Hover-Effekte basierend auf der Bewegung des Mauszeigers ermöglicht und sie bei Berührungsereignissen deaktiviert.

<code class="javascript">function watchForHover() {
  // Initialize variables for touch detection.
  ...

  // Add or remove the "hasHover" class depending on user actions.
  ...
}

watchForHover();</code>
Nach dem Login kopieren

Diese Lösung bietet eine zuverlässige Erkennung und Handhabung von Hover-Stilen auf allen Geräten, ohne das Benutzererlebnis zu beeinträchtigen.

Das obige ist der detaillierte Inhalt vonWie können Sie :hover-CSS-Stile auf Touch-Geräten effektiv deaktivieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!