Opera에서의 스크립팅과 CSS우선 순위
dev | 2006-02-04
일반적으로 스크립트로 CSS속성을 바꾸게 되면 엘리먼트에 직접 선언하는 것과 같은 정도의 우선순위를 갖는 것으로 이해되고 있습니다. 그런데 Opera는 약간 다르게 작동 되더 군요.
#head #topnav ul li img { display: none; }
오페라에서 위와 같이 선언을 하고 스크립트로 이 이미지의 display속성을 바꾸려 하면 적용이 되지 않는 것을 발견 할 수 있습니다. 이와 같은 현상은 !important를 선언해 주었을 경우에도 마찬가지입니다. 스크립트로 변경한 속성이 화면에 반영 되지 않는 현상이 나타납니다. 위의 선언에서 #head를 없애고 일반적으로 id 셀렉트 정도의 우선순위를 지정하면 스크립트로 정상적으로 변경을 할 수 있습니다.
#topnav ul li img { display: none; }
아마도 Opera는 스크립트의 우선 순위가 id 셀렉트 보다 조금 높은 정도 인가 봅니다. 그래서 id 셀렉트를 중첩해서 사용하는 정도의 우선 순위를 지정해 주면 스크립트로 속성을 변경하여도 화면에 반영이 안됩니다.
혹시 저와 같이 어렵게 작성한 스크립트가 Opera에서 전혀 작동하지 않는 현상을 발견하시면 CSS속성이 스크립트 속성보다 우선순위가 높아서 그런 것이 아닌지 검토해 볼 필요가 있습니다.
그리고 추가로 오페라는 opacity가 아직 지원이 안되더군요. 빠른 시일 안에 오페라에서 opacity속성이 지원되었으면 좋겠습니다.
Comments
Opera 9 Preview 2부터 opacity를 지원한다고 합니다. 다운로드 받아서 한 번 테스트 해보세요. ^^;
테스트 해 보니 잘 작동 하는 군요. 만들어 놓은 것이 다른 브라우져 들과 똑같이 작동 하네요. moo.fx도 잘 작동 합니다. 빨리 일반공개 되었으면 좋겠어요. :)