Problem:
Wenn Touch-Geräte Websites besuchen, geschieht Folgendes: Hover-CSS-Stil löst bei Klicks oder Tippen aus. Dies kann ablenken oder sogar dazu führen, dass interaktive Elemente nicht zugänglich sind.
Ziel:
Alle :hover-CSS-Deklarationen für Touch-Geräte entfernen oder ignorieren, ohne den Selektor jeder Deklaration zu kennen.
Lösungen:
Entfernen Sie alle CSS-Regeln, die :hover enthalten, mithilfe von JavaScript.
<code class="javascript">if (hasTouch()) { for (var si in document.styleSheets) { for (var ri = styleSheet.rules.length - 1; ri >= 0; ri--) { if (styleSheet.rules[ri].selectorText.match(':hover')) { styleSheet.deleteRule(ri); } } } }</code>
Vorteile:
Verwenden Sie @media-Blöcke, um :hover-Regeln zu enthalten.
<code class="css">@media (hover: hover) { a:hover { color: blue; } }</code>
Vorteile:
Berührungsereignisse erkennen Verwenden Sie JavaScript und fügen Sie bedingt eine CSS-Klasse hinzu.
<code class="js">if (!hasTouch()) document.body.className += ' hasHover'</code>
<code class="css">body.hasHover a:hover { color: blue; }</code>
Vorteile:
Aktivieren oder deaktivieren Sie Hover-Stile basierend auf Mauszeiger- und Berührungsereignissen.
<code class="js">function watchForHover() { document.addEventListener('touchstart', updateLastTouchTime, true) document.addEventListener('touchstart', disableHover, true) document.addEventListener('mousemove', enableHover, true) }</code>
Vorteile:
Das obige ist der detaillierte Inhalt vonSo deaktivieren Sie :hover-Stile auf Touch-Geräten effektiv: Eine umfassende Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!