문제:
터치 장치가 웹 사이트를 방문할 때 다음이 발생합니다. CSS 스타일은 클릭 또는 탭 시 트리거됩니다. 이는 주의를 산만하게 하거나 심지어 대화형 요소에 액세스하지 못하게 만들 수도 있습니다.
목표:
각 선언의 선택기를 알지 못한 채 터치 장치에 대한 모든 :hover CSS 선언을 제거하거나 무시합니다.
해결책:
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>
장점:
:hover 규칙을 포함하려면 @media 블록을 사용하세요.
<code class="css">@media (hover: hover) { a:hover { color: blue; } }</code>
장점:
터치 이벤트 감지 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>
장점:
위 내용은 터치 장치에서 호버 스타일을 효과적으로 비활성화하는 방법: 종합 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!