我们都知道浏览器之间是有差异的,很多人在使用XHTML+CSS方式制作网页的时候都曾为此无比头痛。要在这些差异的影响下工作需要很多的技巧,“隐藏CSS”就是其中很重要的一种技巧(甚至是最重要的)。这种技巧的主要思想是,用某些方式对某些浏览器隐藏某些重载的CSS规则。
这篇文章并不是想教你如何使用这种技巧,它面向的是有一定CSS基础的设计开发者,我假定你曾经使用过某种隐藏CSS规则的方法。这里是想把可用的方法与被隐藏规则的浏览器都列出来,方便大家在平时工作时随时查阅。
在这张大表里列出了九种方法,我就称其为“独孤九剑”,希望能帮上你的忙:-D
注:此表格原载 w3development.de。
Browser | @import url("...") | @import url(...) | @import "..." | media="" | @media | comment | attribute | child | Tantek |
---|---|---|---|---|---|---|---|---|---|
Amaya 5.1 Win | x | x | x | x | |||||
IE 3 Win | x | x | x | x | x | x | x | ||
IE 4 Win | x | x | x | x | x | x | x | x | |
IE 5 Win | x | x | x | x | |||||
IE 5.5 Win | x | x | x | ||||||
IE 6 Win | x | x | |||||||
IE 4.01 Mac | x | x | x | x | x | x | |||
IE 4.5 Mac | x | x | x | x | |||||
IE 5 Mac | x | x | x | ||||||
Konqueror 2.1.1 | x | ||||||||
Mozilla 1.0 | |||||||||
Netscape 4.x | x | x | x | x | x | x | x | x | |
Netscape 6.01 | |||||||||
Netscape 6.1 | |||||||||
Netscape 6.2 | |||||||||
Opera 3.60 Win | x | ||||||||
Opera 4.02 Win | |||||||||
Opera 5.02 Win | |||||||||
Opera 5.12 Win | |||||||||
Opera Tech Preview 3 Mac |
이 목록을 읽은 후 나의 첫 반응은 다음과 같습니다. Mozilla와 Opera는 정말 신입니다. 가장 오래된 버전의 Opera에는 단 하나의 규칙만 적용되므로 나중에 숨겨진 규칙에 대해 이야기할 때는 기본적으로 Mozilla와 Opera를 무시합니다. 9가지 "검술" 동작이 아래에 나열되어 있으며, 개인적으로 추천하는 사용 사례도 그 옆에 표시되어 있습니다. 제가 추천하는 내용이 반드시 귀하의 요구 사항과 일치하지 않을 수도 있다는 점을 참고하시기 바랍니다. 사용하기 전에 위의 표를 참조하십시오.
@import url("global.css")
이전 버전(버전 번호 5 미만)을 사용하는 브라우저에 대한 규칙을 숨깁니다.
@import url(global.css)
이전 버전의 Windows 플랫폼(버전 번호 5 미만)을 사용하는 브라우저에 대한 규칙을 숨깁니다.
@import "global.css"
이전 버전의 Windows 플랫폼(버전 번호 5 미만)을 사용하는 브라우저에 대한 규칙을 숨깁니다.
<link href="global.css" type="text/css" rel="stylesheet" media="all"/>
Netscape 4.x에 대한 규칙을 숨깁니다.
@media all { ... /* 需要隐藏的规则 */ }
NN과 IE만 고려한다면 버전 4.x에 대한 규칙만 숨길 것입니다.
#anySelector/* */ { color:#f00; }
정밀 유도탄입니다. IE5 이하의 규칙만 숨깁니다. 따라서 IE5와 IE5.5에 대해 별도로 규칙을 정의하려면 해당 규칙을 사용하십시오.
p[id] { color: #0f0; }
또 다른 정밀 유도 미사일입니다. 이전 브라우저에 관심이 없다면 IE에서만 규칙을 숨길 수 있습니다. 속성 선택기에 대한 자세한 내용은 W3C 문서를 참조하세요.
p>span { color: #00f; }
Mac 플랫폼의 일부 IE 버전이 이 규칙을 지원한다는 점을 제외하면 기본적으로 위와 동일합니다.
p#tantek { voice-family: "\"}\""; /* 某些浏览器有解析bug */ voice-family: inherit; /* 在这以下的规则都会被忽略 */ color: #f00; }
모든 "비현대적" 브라우저에서 규칙을 숨기는 유명한 숨겨진 CSS 트릭입니다.