我有一个在IE6 / 7和Firefox 3.5中呈现的页面。 IE6和Firefox 3.5都没有打印页面的问题,但IE7确实如此。打印页面时,我的内容div的前半部分不可见,但显示的两个表除外。内容开始重新出现在句子中间,没有任何标记或中断。
这几乎就像是隐藏了div的前半部分,但让表格显示出来。但是,我没有任何不合适的标签,没有神奇的空浮动div或任何类型的验证错误,而且我还有其他几个使用相同CSS的页面,所有这些都打印得很好。
有没有人经历过类似的事情?你是如何解决的(如果你没有放弃挫折)?
编辑: 我终于有了更多时间来研究这个问题,而且我已经很好地缩小了问题范围。我可以通过执行以下两项操作之一来显示所有文本:将div的“position”样式属性更改为“绝对”之外的其他内容(这会导致定位完全错误),或者通过注释少量内容。
以下是可以注释掉的内容......
<p><strong>Personal Expenses: </strong>EJTH will bill your credit card for any additional expenses (extension <!--XXXX-->airfare, etc.), if applicable. <strong><!-- begin broken part --><em>All charges must be paid in full before your electronic ticket confirmation will be emailed. No payments will be accepted on-site. Note:</em></strong> When using a credit card for personal purchases (i.e., optional activities, trip extensions, conference registration fees, etc.), “MT” will appear as the vendor on your credit card statement.</p>
<p>You will also be responsible for any personal charges you incur. These include phone calls, valet and laundry service or personal bar bills. The resort cashier will keep a separate record of these expenditures for you. Be sure to settle your personal account at the resort front desk prior to departure. <strong><em>Important: If you neglect to pay your personal (incidental) account when you check out, EJTH will bill you after the program for the actual cost, plus a 15% service charge.</em></strong><!-- end broken part --></p>
希望能帮到你,而不是帮助我。我打算尝试使用CSS来解决问题,假设我今天没有被其他东西拉进去。
编辑:屏幕!
第一个是当前页面的打印方式。我把XXXX放在内容重新出现的页面上;我也把它放在上面的代码中。如果你稍稍眯一眼就可以看到它。
http://img109.imageshack.us/img109/589/current.jpg
第二个是当我将内容div的CSS位置从绝对值更改为相对时页面的打印方式。
http://img514.imageshack.us/img514/9961/modcss.jpg
第三个是如果我注释掉“破碎的部分”页面的打印方式。就是这样,很好。
答案 0 :(得分:3)
好的......我创建了一个新的CSS表并为media =“print”指定了它。在这个样式表中,我删除了所有格式和导航,并导致内容完全打印出来。这在IE7和Firefox中运行良好。感谢所有帮助过的人!
答案 1 :(得分:2)
不是一个答案,我很害怕,但评论过于冗长......
更改position
属性时,定位“全部错误”是什么?您是在谈论打印页面或浏览器中的定位?如果它在浏览器中,请使用单独的打印样式表...
您是否可以通过删除这两个段落来“修复”该页面,或者删除同一个div中的其他段落,并且可能在相同的打印页面上,加起来大约相同的长度也会修复它?
一个小小的谷歌搜索确实表明IE7在定位和打印方面存在问题。看看以下链接。他们可能会指出你正确的方向:
This post by "ThaSaltyDawg" from the second link看起来信息最丰富,但它解决了一个不同的(?)IE7打印错误:
通过反复试验我找到了解决问题的方法。正如我猜测的那样是CSS。使用float,position,z-index和一些其他元素的组合在IE中引起了一些意想不到的结果。进入Microsoft支持页面后,我发现IE有关于此的错误。
在我的情况下,使用带有
<table>
的浮点值在IE中是不受欢迎的。它显示正常,但打印效果不佳。还要确保您的位置值正确。如果您正在嵌套<table>
和<div>
,请确保您的z-index正确无误。没有真正的设置方法来设置这些东西,这取决于使用情况,因为我的几个页面必须有不同的调整。
浮动和绝对定位的元素似乎给出了最多的问题。因此,您可能只需要使用之前更改div上的position
属性(在打印样式表中)的“解决方案”,然后通过其余部分来修复损坏的布局。
答案 2 :(得分:0)
即使使用打印样式表,我发现IE7(有时是IE8)忽略了某些样式。
经过一些测试后,似乎是因为我提到的类名是html5标签。如果你有包装div,你可以只针对它们,这似乎解决了我的问题。