如何在觸控裝置上有效停用 :hover CSS 樣式?
忽略觸控裝置上的:hover CSS 樣式
開發網站時,最好刪除或忽略觸控裝置上的:hover CSS 聲明,因為這些聲明可能很尷尬且不必要。
快速而骯髒:使用 JavaScript
一種方法是使用 JavaScript 刪除所有包含 :hover 的樣式規則。此方法與舊版瀏覽器相容,並且不需要修改 CSS。
<code class="javascript">function hasTouch() { // Check for various touch event APIs. ... } if (hasTouch()) { // Loop through stylesheets and remove :hover rules. ... }</code>
限制:
- 樣式表必須託管在同一網域上。
- 混合滑鼠和觸控裝置仍然可以觸發 :hover 事件,對使用者體驗產生負面影響。
僅 CSS:媒體查詢
或者,您可以使用媒體查詢來停用某些裝置的 :hover 樣式。
<code class="css">@media (hover: none) { a:hover { color: inherit; } }</code>
限制:
- 需要媒體查詢,但不需要所有瀏覽器都支援。
- 不適用於混合滑鼠和觸控裝置。
最強的:JavaScript 偵測
對於最可靠的解決方案,使用JavaScript 偵測觸控事件並在:hover 規則前加上自訂類。
<code class="css">body.hasHover a:hover { color: blue; }</code>
<code class="javascript">function hasTouch() { // Check for various touch event APIs. ... } if (!hasTouch()) { document.body.className += ' hasHover'; }</code>
此方法克服了純 CSS 方法的限制,但在混合滑鼠和觸控裝置。
要解決此問題,請實施更複雜的方法,根據滑鼠遊標移動啟用懸停效果,並在觸控事件上停用它們。
<code class="javascript">function watchForHover() { // Initialize variables for touch detection. ... // Add or remove the "hasHover" class depending on user actions. ... } watchForHover();</code>
此解決方案提供可靠的偵測和處理所有裝置上的懸停樣式,而不影響使用者體驗。
以上是如何在觸控裝置上有效停用 :hover CSS 樣式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

在元素個數不固定的情況下如何通過CSS選擇第一個指定類名的子元素在處理HTML結構時,常常會遇到元素個數不�...

關於Flex佈局中紫色斜線區域的疑問在使用Flex佈局時,你可能會遇到一些令人困惑的現象,比如在開發者工具(d...

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tartanify.com上,我們收集了5,000多個格子呢
