Css 打印样式表地狱-寻找未解决问题的建议
几天来,我一直在努力让我们的一张网络地图以半体面的方式打印出来。我八天前发了帖子,但后来一直围绕着上面概述的问题工作。现在我正在处理一些我似乎无法理解的其他问题 首先,这里有一个指向我要打印的页面的链接: 在过去的几天里,我尝试了很多不同的方法来处理浏览器的差异和缺陷,我确信我提出的解决方案还远远不够完美。也就是说,目前部署的解决方案产生了迄今为止我所能产生的最佳结果 最令人沮丧的是,我没有寻找任何复杂的东西。我只希望我的打印样式表(我已经标记了所有需要处理的项目):Css 打印样式表地狱-寻找未解决问题的建议,css,printing,stylesheet,Css,Printing,Stylesheet,几天来,我一直在努力让我们的一张网络地图以半体面的方式打印出来。我八天前发了帖子,但后来一直围绕着上面概述的问题工作。现在我正在处理一些我似乎无法理解的其他问题 首先,这里有一个指向我要打印的页面的链接: 在过去的几天里,我尝试了很多不同的方法来处理浏览器的差异和缺陷,我确信我提出的解决方案还远远不够完美。也就是说,目前部署的解决方案产生了迄今为止我所能产生的最佳结果 最令人沮丧的是,我没有寻找任何复杂的东西。我只希望我的打印样式表(我已经标记了所有需要处理的项目): 隐藏所有不必要的元素 调整
70px
高标题。无论打印大小有多大,它都应该调整大小15px
760px
。我更喜欢使用height:100%代码>我这样做是因为在某些浏览器中,这似乎是阻止地图溢出到第二页的唯一方法
760px
。但是,在某些浏览器中,单击某个点后,地图会以页面高度的50%左右打印出来。这个我就是解释不了- MacOSX上的Safari:一切都很完美
- Mac OS X/Windows上的Chrome浏览器、Mac OS X/Windows上的Firefox浏览器、Internet Explorer 7:不点击某个点进行打印会首先正确打印页面,但由于硬编码的div高度,地图不会占据页面的整个高度。单击某个点后打印会将打印输出中的地图调整为打印区域高度的约50%
- Internet Explorer 8:在单击地图上的某个点之前和之后打印会导致地图从第一页转到第二页
- Internet Explorer 9:在单击地图上的某个点之前和之后进行打印会将打印输出中的地图大小调整为打印区域高度的约50%
X-UA-Compatibile
标签时,我的口碑不好。这也只能解决剩下的两个问题中的一个。当然有更好的办法
最后,我知道我可以创建该页面的PDF,但如果可能的话,我真的想避免这样做
谢谢你提供的帮助,如果需要的话,我可以在这里发布更多信息 我又拔了几天头发后,就可以正常打印了,而不必过多地解决问题 基本上,我是从改变心态和方法开始的。然而,在我试图想出一个适用于所有浏览器的解决方案之前,我决定开始关注每个浏览器,一次一个。我首先创建了一个特定于Internet Explorer的打印样式表,并且仅在用户使用IE加载站点时才加载它:
<!--[if IE]>
<link rel="stylesheet" type="text/css" media="print" href="/css/rich/footstepsofhistoryprint-ie.css" />
<![endif]-->
<!--[if !IE]><!-->
<link rel="stylesheet" type="text/css" media="print" href="/css/rich/footstepsofhistoryprint.css" />
<!--<![endif]-->
这解决了IE 7、8和9的问题。我不确定为什么必须在打印样式表中再次设置这些样式,因为它们已经在打印时应用的另一个样式表中设置:
<link rel="stylesheet" type="text/css" media="all" href="/css/rich/footstepsofhistory.css" />
但由于某些原因,它们显然没有得到正确的应用
从那里吹来一阵微风。我只需要对非IE打印样式表做一些小的修改,就可以在Chrome、Firefox和Safari中工作,然后我就可以开始了
总结经验教训的简要概述:
- 使打印样式表尽可能简单
- 如果您有奇怪的布局问题,只需创建一个特定于Internet Explorer的样式表就可以保持您的理智。见鬼,如果必须的话,为每个版本的Internet Explorer创建打印样式表。我确信,在某些情况下,这是让打印在所有浏览器中正常工作的唯一方法
- 到目前为止,Chrome拥有最好的“实时”CSS编辑功能。如果你正在寻找一个工具,允许你动态预览CSS的变化,你做他们,去铬
<link rel="stylesheet" type="text/css" media="all" href="/css/rich/footstepsofhistory.css" />