如何在所有浏览器的页面打印中获得跨浏览器兼容性?

时间:2010-09-13 01:34:33

标签: css xhtml

如何在Print中获得跨浏览器兼容性?打印css文件的任何提示,以便在所有浏览器上打印相同的纸张。

修改

我已经在使用 Eric meyer CSS ,但在我们从网站上打印时,仍然会遇到不同浏览器的不一致。

是否有任何CSS声明我们可以随时使用并放在print css的顶部,就像在media=screen中工作良好的其他css重置一样?

我已经使用不同的css进行打印(print.css)media="print"


保持* {posotion:static}*{float:none}* {clear:both}会更好吗?  在打印css总是吗?

2 个答案:

答案 0 :(得分:19)

同样的结果是不可能的。输出不仅取决于CSS,还取决于页边距的个别设置,打印机的功能,可用字体,纸张格式(A4 vs US Letter)以及可能更多。

适用于CSS

  • 避免浮动和定位(相对,绝对和固定)。特别是Mozilla(Firefox)无法很好地处理这些属性。
  • 使用page-break-*但不要依赖它。有些浏览器甚至会在图像中插入分页符。
  • 您不知道页面宽度和高度(可以A5)。保持一切尽可能灵活。
  • For performance,将您的打印样式放入@media print {}规则的主样式表中。
  • 使用pt而非px作为边框和边距。打印机不知道像素是什么,可能会产生奇怪的结果。
  • 在Opera中开发您的打印版面,它目前对@media print提供最佳支持,并在您完成后插入兼容性黑客。
  • 如果使用reserved IDs
  • ,Internet Explorer可能会因打印而崩溃
  • 绝不依赖打印预览。在真正的打印输出上会得到非常不同的结果。使用print-to-pdf驱动程序保存雨林。 :)

答案 1 :(得分:2)

在html中,使用属性“media”设置为“print”的链接。

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

你可以禁用所有其他CSS,只使用你的“打印”CSS。首先将媒体设置为“屏幕”。测试它就像在所有浏览器中测试普通的css一样。

根据我的经验,它在屏幕上显示的内容在打印时几乎都会显示出来。

建议:

1)保持您的布局尽可能流畅,以使其灵活到设置的纸张边距。

2)保持简单。

3)在IE中,背景可能会丢失。要解决此问题,请转到:工具&gt; Internet选项&gt;高级。在“设置”框中,向下滚动到“打印”并启用“打印背景颜色和图像”