我试图弄清楚如何构建我的 CSS 文件(现在已经很多了),我想知道是否有任何实际区别:
<link href="blah.css" media="print" rel="stylesheet" type="text/css" />
或有:
@media print {
definitions
}
我是从浏览器的角度问的。两者都得到同样的支持吗?我可以不关心吗?
还是一个明显优越?
我试图弄清楚如何构建我的 CSS 文件(现在已经很多了),我想知道是否有任何实际区别:
<link href="blah.css" media="print" rel="stylesheet" type="text/css" />
或有:
@media print {
definitions
}
我是从浏览器的角度问的。两者都得到同样的支持吗?我可以不关心吗?
还是一个明显优越?
根据http://www.w3.org/TR/css3-mediaqueries/@media ...
,自 HTML4 和 CSS2 以来就支持在 CSS 文件中使用。
"'print' 和 'screen' 媒体类型在 HTML4 中定义。HTML4 中媒体类型的完整列表是:'aural'、'braille'、'handheld'、'print'、'projection'、'screen'、 'tty', 'tv'。CSS2 定义了相同的列表,弃用了 'aural' 并添加了 'embossed' 和 'speech'。此外,'all' 用于指示样式表适用于所有媒体类型。”
CSS3 扩展了使用,@media ...
也允许使用媒体查询,这些也记录在我之前链接的 w3.org 页面上。
此处还记录了媒体类型的使用:
http://www.w3schools.com/css/css_mediatypes.asp
以下是对媒体查询的支持列表:
http://www.javascriptkit.com/dhtmltutors/cssmediaqueries.shtml
据我所知;的使用得到了@media screen, print, ...
非常广泛的支持,但是您可以使用的较新的媒体查询仅在与 CSS3 兼容的浏览器中受支持。
编辑:这里有更多关于此的信息:
http://www.w3.org/TR/CSS2/media.html#x2
我不会担心支持使用@media ...
这种方式。
我只会使用@media print,如果用户决定打印,您就不必额外调用样式表。您唯一要放弃的是样式表上额外的几 KB,但我想说这对于合并所有样式来说并不是一个糟糕的代价。