게시판 tr 오버시 색을 입히는 방법
크로스브라우징 2010. 4. 8. 10:16예전 테이블 코딩 당시엔 아래 스타일태그를 이용해서 tr에 인라인으로 박아 색을 입혔었다.
onmouseover="this.style.backgroundColor='#9FB6FF'" onmouseout="this.style.backgroundColor=''"
onmouseover="this.style.backgroundColor='#9FB6FF'" onmouseout="this.style.backgroundColor=''"
hover의 효용의 알고부터는 코딩의 간편화로 룰루랄라 좋아하며 신나게 썼다. 다 쓰고나니 ie6 얜 안나오더라....
결국 htc 파일을 쓸수밖에 없었다.
아래는 작업하면서 찾아본 htc파일에 대한 설명이다.
결국 htc 파일을 쓸수밖에 없었다.
아래는 작업하면서 찾아본 htc파일에 대한 설명이다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
최근에 나온 대부분의 웹브라우저들은 모든 html요소에 :hover 선택자를 지원합니다. :hover 선택자를 사용함으로서, Javascript없이, 단지 CSS 만으로도 테이블의 한 행에 마우스를 올려놓을 경우에 대한 효과를 적용할 수 있습니다. 하지만 인터넷 익스플로러의경우, 사용자가 사용하는 브라우저의 버전에 따라서 :hover의 사용가능여부가 달라집니다.
Whatever:hover는 인터넷 익스플로러 6,7,8버전의 :hover, :active, :focus 선택자의 기능을 개선하도록 제작된 스크립트이며, 이 스크립트를 통하여 인터넷 익스프로러에서도 선택자를 사용하여, 다른 브라우저에서 나타나는것과 동일한 효과를 볼 수 있습니다. 버전 3의 경우 ajax를 지원함으로서, 자바스크립트를 사용하여 삽입된 html태그에 대해서도 위의 선택자들을 사용할 수 있게 되었습니다.
*역주: 인터넷 익스플로러 6버전에서는 a태그를 제외한 다른 모든 태그에서 hover가 먹지 않는다..
사용 방법 :
사용 방법 :
whatever:hover를 body영역에 넣으면 설정이 완료됩니다. 참고로, behavior에 들어가는 URL은 css파일이 아닌, html파일에 대하여 상대적인 주소가 들어갑니다. 아래와 같이 사용하세요,
body {
behavior: url("csshover3.htc");
}
body {
behavior: url("csshover3.htc");
}
작동 원리 :
모든 브라우저들은 자바스크립트를 사용하여 스타일시트의 규칙을 확인하거나, 새로이 규칙을 추가할 수 있도록하는 방법을 제공하고 있습니다. 보통, 익스플로러의 경우 지원하지 않는 모든 항목에 대하여 "unknown"이라는 값을 반환합니다. 예를 들어서 "div p:first-child"의 경우, "div p:unknown"로 변환되고, "p a[href]"의 경우는 "unknown"으로 변환되게 됩니다. 하지만 다행히도 익스플로러는 :hover 선택자를 인지하고 (그에대한 수행은 하지 않은 채) 그대로 놔두게 됩니다.
익스플로러는 또한 동/정적으로 미리 저장되었거나, htc나 hta 확장자를 가진 파일을 통해서 사용자가 직접 만들 수 있는 behavior라는 기능을 제공합니다. behavior는 스타일시트를 통해서 html에 링크되며, 지정된 behavior를 통해서 규칙지정자는 하나의 노드에 대해 더욱 향상된 기능을 제공할 수 있습니다.
위에 적어놓은 사항들을 사용하면, 익스플로러가 지원하지 않는 스타일 규칙을 찾는 behavior를 만들 수 있을 뿐만 아니라, 사용자가 지정한 방식으로 스타일 규칙을 처리할 수 있습니다. 이것은 다음과 같은 과정을 거치게 됩니다.
1. 익스플로러가 지원하지 않는 모든 :hover에 대한 스타일시트를 찾는다.
2. 새로운 클래스명을 사용하여 익스플로러가 지원하는 새로운 규칙을 생성한다.
3. 새로운 클래스명을 위한 스크립트 이벤트를 설정한다.
2. 새로운 클래스명을 사용하여 익스플로러가 지원하는 새로운 규칙을 생성한다.
3. 새로운 클래스명을 위한 스크립트 이벤트를 설정한다.
이러한 방식으로, :hover, :active, :focus는 익스플로러에서 지원될 수 있습니다. 그리고 개발자는 모든것이 자동으로 처리되기 때문에 behavior를 추가하는것으로서 모든 문제가 해결됩니다.
버전 1,2와 달리, 버전 3은 동적으로 추가된 html에 대해서도 지원을 합니다. 1,2버전과 와 3버전이 다른 점은 1,2버전의 경우 페이지를 로드할때에만 해당하는 요소에 대해서 위의 과정을 실행했지만, 3버전에서는 표현식을 사용함으로서 노드들이 그들자신에게 다시 콜백할 수 있게 하였다는 것입니다. 더 자세한 사항은 주석처리된 파일을 참고하세요.
>> 출처:http://frontjang.tistory.com/104
'크로스브라우징' 카테고리의 다른 글
ie 랜더링 문제 (0) | 2010.05.14 |
---|---|
브라우저별 테이블 height 값으로 본 픽셀 테스트 (0) | 2010.04.21 |
1px 공간 버그 (0) | 2010.04.08 |
ie6 png이미지의 사용 (0) | 2010.04.07 |
미스테리 <col> (0) | 2010.04.06 |