css - HTML5 元素在 IE8 中打印时丢失 CSS 类

标签 css html printing internet-explorer-8 preview

我有一个要求在 IE8 中支持相当 pretty-print 。我今天遇到一个问题,该页面使用了一些 HTMl5 功能(部分)和 CSS。该问题仅在打印时出现。查看下面的示例,它应该会生成一些带下划线的文本。那很好用。但是打印时,它没有下划线。这可以通过将“部分”更改为“div”来“修复”,但出于各种原因我宁愿不这样做。

有人有什么建议吗?这似乎不是在打印预览期间执行 javascript 的问题,因为我可以将“window.onload”事件添加到页面,让它用内容填充一个 div,这在打印预览中工作正常。普通 CSS 在打印预览中工作正常;如果我没有在“.Signature”中嵌套“.SigLine”,它在打印预览中就可以正常工作。但似乎“Section”标签的 CSS 类以某种方式被忽略,因此嵌套的“SigLine”div 不认为自己是“Signature”元素的子元素。

这是一个完整的工作示例

<html>
<head>
    <!--[if lt IE 9]>
    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

    <style type="text/css" media="screen,print">
        .Signature .SigLine{border-bottom:solid 1px #000} 
    </style>
</head>
<body>

<section class="Signature"> <!-- Make this a <div> and everything's fine... -->
<div class="SigLine" style="width: 400px;">I should be underlined...</div>
</section>

</body>
</html>

最佳答案

如果 Tim 允许的话,我会把上面的评论标记为答案,因为它让我去寻找 Modernizr 的打印垫片,这让我找到了 http://davidwalsh.name/html5-print , 然后 https://github.com/aFarkas/html5shiv/blob/master/src/html5shiv-printshiv.js .通过在我的示例中包含 js 文件,它解决了我在 IE8 中的打印问题。我不确定使用此 shiv 是否会产生任何其他后果,但它似乎确实解决了我的具体问题。

谢谢,蒂姆。

关于css - HTML5 元素在 IE8 中打印时丢失 CSS 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12377977/

相关文章:

css - Youtube iFrame 上下文菜单异常

CSS3 PIE背景颜色透明度

javascript - foreach循环动态数据中的备用图像/文本位置

html - 如何使 td 内的 div 拉伸(stretch)?

javascript - 将 python 客户端服务器转换为 websocket

java - XML 打印文件中的不同属性顺序

java - 从 AppContext 中删除类的 Java 9+ 等效项是什么?需要重新加载PrintServiceLookup类

javascript - 使用 CSS 和 javascript 显示事件的主菜单和子菜单

html - 遮盖一个物体,使它看起来好像在它旋转的物体后面

printing - 使用 WPF XPS 查看器打印 XPS 时的默认布局方向