在样式表中使用media =“print”与@media print声明的权衡取舍是什么?

时间:2013-01-31 14:10:34

标签: css printing media-queries

我正在试图弄清楚如何构建我的CSS文件(现在已经很多了),我想知道是否有任何实际的区别:

<link href="blah.css" media="print" rel="stylesheet" type="text/css" />

或拥有:

@media print {
   definitions
}

我是从浏览器的角度问的。两者都得到同样的支持吗?我可以不在乎吗?

或者一个明显优越的?

2 个答案:

答案 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,但我认为巩固你所有款式并不是一个糟糕的代价。