【问题标题】:IE7 on XP render the media="print" stylesheetsXP 上的 IE7 呈现 media="print" 样式表
【发布时间】:2013-04-26 08:56:44
【问题描述】:

在我的网页中,我使用了 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 的调试栏插件中,我可以看到 IE7 应用了print-layout.css 文件。这怎么可能?还是我错过了在 IE7 上使用打印的任何要求?

谢谢:)

【问题讨论】:

  • 忘记 IE7,它是新的 IE6。
  • @Kyle Sevenoaks :“忘记它”是完美的解决方案,但客户需要它 =]]...
  • 那为什么不向客户解释一下 IE7 不再是一个可行的支持选项。我们支持的时间与仍在使用它的用户数量对我们有利;)
  • 为什么 ie7 应该忽略这种风格?
  • @KyleSevenoaks : :D...哈哈 alber : 我也想知道为什么...

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


【解决方案1】:

该语法甚至在 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 &lt; 8之外的所有浏览器的打印样式。


附带说明:IE7 的使用在全球范围内 &lt; 1%:
http://gs.statcounter.com/#browser_version-ww-monthly-201211-201304

【讨论】:

  • 所以IE7只是盲目地应用样式表,不管它是什么媒体类型?
  • IE7 正确使用了style 标签上的媒体打印,否则您将看不到任何元素(您将 display: none 设置为所有 UI-Dialog 元素)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-07
  • 2012-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-15
相关资源
最近更新 更多