XP上的IE7渲染了media =“print”样式表

时间:2013-05-02 08:44:21

标签: css printing internet-explorer-7 screen media-queries

在我的网页中,我使用了2个样式表:

<link rel="stylesheet" href="css/screen-layout.css" media="screen" type="text/css" />
<link rel="stylesheet" href="css/print-layout.css" media="print" type="text/css" />

print-layout.css内有:

.ui-dialog * {display: none !important;}

当我在IE7上查看我的网页时,它应该忽略media="print"一个,但它没有,它应用display: none,导致所有元素被隐藏。在IE7的debugbar插件中,我可以看到IE7应用了print-layout.css文件。怎么可能?或者我是否遗漏了在IE7上使用打印的任何要求?

谢谢:)

1 个答案:

答案 0 :(得分:4)

该语法甚至可以在IE7上运行,但如果您需要将该浏览器排除在应用您的打印样式之外,只需以这种方式重写您的最后一个包含:

<style type="text/css" rel="stylesheet">
   @import url('css/print-layout.css') print;
</style>

因为IE7尚未在@import规则上实现媒体类型。

否则只需将第二个包含包装在条件注释中,如此

<!--[if (gte IE 8)]><!-->
   <link rel="stylesheet"... media="print" /> 
<!--<![endif]-->

所以你要包括除IE < 8以外的所有浏览器的打印样式。


作为旁注:IE7的使用是全球< 1%
http://gs.statcounter.com/#browser_version-ww-monthly-201211-201304