我正在试图弄清楚如何构建我的CSS文件(现在已经很多了),我想知道是否有任何实际的区别:
<link href="blah.css" media="print" rel="stylesheet" type="text/css" />
或拥有:
@media print {
definitions
}
我是从浏览器的角度问的。两者都得到同样的支持吗?我可以不在乎吗?
或者一个明显优越的?
答案 0 :(得分:4)
根据http://www.w3.org/TR/css3-mediaqueries/,自HTML4和CSS2以来,支持在CSS文件中使用@media ...
。
“'print'和'screen'媒体类型在HTML4中定义 HTML4中完整的媒体类型列表是:'aural','braille', '掌上','打印','投影','屏幕','tty','电视'。 CSS2定义 相同的列表,弃用'aural'并添加'浮雕'和'语音'。 此外,'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 ...
。
答案 1 :(得分:0)
我只使用@media print,如果用户决定打印,则不必另外调用样式表。你唯一放弃的是你的样式表上额外的几KB,但我认为巩固你所有款式并不是一个糟糕的代价。