3

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

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

或有:

@media print {
   definitions
}

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

还是一个明显优越?

4

2 回答 2

4

根据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 ...这种方式。

于 2013-01-31T14:13:57.857 回答
0

我只会使用@media print,如果用户决定打印,您就不必额外调用样式表。您唯一要放弃的是样式表上额外的几 KB,但我想说这对于合并所有样式来说并不是一个糟糕的代价。

于 2013-01-31T15:06:43.417 回答