Internet Explorer 8标准模式下的Bing地图打印问题



我正在为我最近构建的一个网络地图应用程序添加基本的打印功能,当我在标准模式下使用Internet Explorer 8时,我似乎无法使打印正常工作。我希望有更多CSS经验的人能帮上忙。

我已经在jsbin上创建了一个基本的例子来演示我所看到的:http://jsbin.com/osepov/16。这个例子在大多数浏览器中都能正常打印。然而,在Internet Explorer 8的标准模式下,地图的平铺图像在打印时从第一页跑到第二页。我尝试了一堆不同的CSS组合,并在网上浏览了几个小时,寻找可能解决这个问题的hack。到目前为止,我显然运气不佳。

由于打印功能在大多数浏览器中运行良好,如果需要,我愿意在一些事情上妥协,以使其在Internet Explorer 8标准模式下工作:

  1. 地图不需要填满整个页面,减去标题。它可以有一个固定的高度
  2. 标题很好,但我愿意没有它。

我知道在服务器上建立PDF是可能的,但我真的想用一个简单的打印样式表来做到这一点。

注意:是的,我必须支持ie8标准模式。我有一个解决方案,将IE8用户踢到IE7模式,但这对我的客户来说是不可接受的。

UPDATE 2:我能够通过将IE8切换到IE7标准模式来解决这个问题。地图现在打印正确了。

UPDATE:不,这并没有解决问题。我仍然看到同样的问题。这似乎工作,但我仍然看到问题。

我想我弄明白了。基本上,在Internet Explorer 8标准模式下打印时,"top"div似乎会导致整个页面向下移动并跑到第二页。我不确定为什么这只发生在IE8,而不是在其他浏览器,但有各种奇怪的IE-only的错误,我不明白。

最终修复:

#wrapper {height:100%;left:0px;position:absolute;top:0px;width:100%;}
#top {height:70px;position:relative;width:100%;}
#main {height:785px;overflow:hidden;position:absolute;top:70px;width:100%;}

因此,相对地定位"top"div并为"main"div分配一个像素高度和"overflow:hidden"似乎可以解决这个问题。

这不是一个完美的解决方案,但它满足了我目前的需求。

更新后的解决方案如下:http://jsbin.com/osepov/19.

最新更新