2011-02-09 5 views
4

기능 감지 기능을 사용하여 브라우저에서 : 호버 (hover) 의사 클래스를 지원하는지 여부를 어떻게 결정합니까? 가능한 경우 ie6- 특정 스크립트 파일을 포함하도록 조건부 주석을 사용하지 않고이 작업을 수행하려고합니다.브라우저가 CSS 호버를 지원하는지 확인하기 위해 기능 감지를 사용하는 방법은 무엇입니까?

+2

특징 검출을 위해, 당신은 꽤 큰 의존성 것 같아 몇 가지 복잡한 자바 스크립트, 필요 - 특히보고를 (AFAIK) 브라우저 만 지원합니다. 호버는 실제로 IE6입니다. –

+1

이론적으로 'body : hover'에 스타일을 설정하고 본문의 계산 된 스타일을 가져 와서 설정되어 있는지 확인할 수 있습니다. 비록 포인터가 도구 모음에 있었다면 그것은 깰 것이라고 생각합니다. 즉, 포인터가있는 지점을 클릭 할 가치가 있다는 표시를 위해 : : hover를 사용하고 있다면 어쨌든 JS를 살펴 봐야합니다. ': hover'는 너무 제한적이어서 포인팅 장치를 사용하는 사람들에 의존하고 안정적으로 유지할 수 있다는 것을 의미하는 경향이 있습니다 (예 : 관절염으로는 어려움). – Quentin

+1

거의 모든 주요 현대적인 브라우저는 : 호버 (doover) 가상 클래스 – heymrcarter

답변

1

ie6 이상인 경우 마우스 오버를 지원하지 않습니다. 마우스 오버를 지원하지 않는 다른 브라우저는 너무 오래되어 걱정할 필요가 없습니다.

편집

즉, 6 :hover 작업을 할 수 있습니다 : See here

+1

고마워요. 내가 찾지 못했던 대답의 종류 – mhildreth

+0

요즘 브라우저 탐지보다 모든 사람이 기능 탐지에 대해 하프닝을하고 있기 때문에 필자는 실사를 통해 그 경로로 이동하려고 노력하고있었습니다. 그러나, 그냥 IE6 확인하고 jquery wireup 할 할 수 있습니다 보인다. – mhildreth

+0

@ Mark Hildreth, 일반적으로 기능 감지는 좋지만 일부 기능은 감지하기가 매우 어렵거나 불가능합니다. 예를 들면 : ie6 png 투명성 버그, 나는 꽤 확신 할 수 없다. – mikerobi

1

은 : 의사 클래스를 가져가 표준을 준수하는 브라우저에서 지원됩니다. IE6과 같은 브라우저는 <a> 요소에 대해서만 지원합니다.

그러나 jQuery를 사용하여 모든 것을 가리키는 변경을 사용할 수 있습니다. 당신의 CSS에서

$('.class').hover(
    function(){ 
     $(this).addClass('hover'); 
    }, 
    function(){ 
     $(this).removeClass('hover'); 
}); 

은 pesudo 클래스 대신에 클래스 .hover를 사용 가져

+0

나는 누군가가 항상 jQuery 솔루션을 제공하는 것을 좋아한다. – mikerobi

+0

모든 브라우저에서 호버 지원을 시뮬레이트하는 가장 깨끗한 방법이라고 생각합니다. 그리고 실제로 그의 해결책에 대한 질문에 대답했습니다;) – daveyfaherty

+0

jquery가 아닌 프로젝트에서 작업하는 사람에게는별로 도움이되지 않습니다. 확실히 가장 깨끗한 문제는 아닙니다. 실제로 ie : 6에서': hover' 작업을하는 픽스가 있습니다. 내 업데이트 답변을 참조하십시오. – mikerobi