如何在觸控裝置上停用:hover 樣式:綜合指南
問題:
當觸控裝置造訪網站時,::懸空停CSS 樣式在點擊或點擊時觸發。這可能會分散注意力,甚至導致互動元素無法存取。
目標:
在不知道每個聲明選擇器的情況下刪除或忽略觸控裝置的所有 :hover CSS 聲明。
解決方案:
JavaScript 刪除
使用 JavaScript 刪除所有包含 :hover 的 CSS 規則。
<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>
優點:
- 與舊版瀏覽器相容,不需要更改 CSS。
缺點: - 停用混合滑鼠和觸控裝置上的懸停,損害使用者體驗。
- 只能刪除同一網域上所託管的樣式表。
僅 CSS 與媒體查詢
使用 @media 區塊包含 :hover 規則。
<code class="css">@media (hover: hover) { a:hover { color: blue; } }</code>
優點:
- 易於在 CSS 中實現。
缺點: - 需要支援懸停媒體查詢(iOS 9.0、Android Chrome、Android 5.0)。
- 混合老鼠和觸控設備不一致。
觸控偵測與 CSS 注入
偵測觸控事件使用 JavaScript 並有條件地新增 CSS 類別。
<code class="js">if (!hasTouch()) document.body.className += ' hasHover'</code>
<code class="css">body.hasHover a:hover { color: blue; }</code>
優點:
- 比混合觸控裝置的媒體查詢更可靠。
缺點: - 仍會受到觸控模擬事件(例如觸控螢幕上的滑鼠遊標)的影響。
最終解決方案:動態懸停偵測
基於滑鼠遊標和觸控事件啟用或停用懸停樣式。
<code class="js">function watchForHover() { document.addEventListener('touchstart', updateLastTouchTime, true) document.addEventListener('touchstart', disableHover, true) document.addEventListener('mousemove', enableHover, true) }</code>
優點:
- 最強大的解決方案,適用於所有瀏覽器。
- 動態調整懸停樣式以適應裝置輸入。
缺點: - 觸碰事件後有短暫的延遲(例如 500 毫秒)以防止模擬老鼠移動事件。
以上是如何有效停用觸控裝置上的 :hover 樣式:綜合指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

我知道,我知道:有大量的內容管理系統選項可用,而我進行了幾個測試,但實際上沒有一個是一個,y&#039;知道嗎?怪異的定價模型,艱難的自定義,有些甚至最終成為整個&

鏈接CSS文件到HTML可以通過在HTML的部分使用元素實現。 1)使用標籤鏈接本地CSS文件。 2)多個CSS文件可通過添加多個標籤實現。 3)外部CSS文件使用絕對URL鏈接,如。 4)確保正確使用文件路徑和CSS文件加載順序,優化性能可使用CSS預處理器合併文件。

選擇Flexbox還是Grid取決於佈局需求:1)Flexbox適用於一維佈局,如導航欄;2)Grid適合二維佈局,如雜誌式佈局。兩者在項目中可結合使用,提升佈局效果。

包含CSS文件的最佳方法是使用標籤在HTML的部分引入外部CSS文件。 1.使用標籤引入外部CSS文件,如。 2.對於小型調整,可以使用內聯CSS,但應謹慎使用。 3.大型項目可使用CSS預處理器如Sass或Less,通過@import導入其他CSS文件。 4.為了性能,應合併CSS文件並使用CDN,同時使用工具如CSSNano進行壓縮。

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

重構自己的代碼看起來是什麼樣的?約翰·瑞亞(John Rhea)挑選了他寫的一個舊的CSS動畫,並介紹了優化它的思維過程。

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcsssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingMultatingMultationMultationProperPertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用CombanningWiThjavoFofofofoftofofo


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境