如何在打印时修复IE表格,收音机和复选框怪癖?

时间:2013-04-04 20:55:01

标签: html css internet-explorer printing css-tables

我需要在IE8,IE9和Chrome中打印一个页面。它在Chrome中完美打印,在IE8中表现不佳(尚未测试过IE9)。

我现在面临的三个主要问题是:

  1. 复选框和单选按钮宽度搞乱,并且有边框
  2. 整个表单中的额外填充,特别是在标签和字段之间
  3. 内部表格边框未显示,第一列应隐藏
  4. 请参阅下面的屏幕截图。为什么会这样?我似乎无法修复它,我已经尝试过几次更改css。我知道它正在阅读CSS。

    复选框: Checkbox width is messed up and it has a border

    到处都有额外填充:

    Extra padding throughout the form

    没有内部表格边框 Internal table borders do not show up + first column should be hidden

    更新

    Chrome和IE中的表单都正确显示(显示表格边框,填充正确等)。它在Chrome中正确打印。它无法在IE中正确打印。

    请不要告诉我以另一种方式打印表格。我做了一个设计决定,从浏览器打印出来:这对我的项目来说是最好的。

2 个答案:

答案 0 :(得分:0)

1:你可能有像

这样的东西
input {border: ...; width: ...}

会影响您的复选框和收音机。至少在Internet Explorer中。您可以使用

解决此问题
input[type=radio], input[type=checkbox] {alternating styles}

或通过指定特定类:

input.radio, input.checkbox {alternating styles}

2:你可以通过在其旁边输入输入形式和标签来摆脱填充

text-align: vertical

3:要解决边界,你应该为它提供CSS;)

答案 1 :(得分:0)

我添加了一个带有边框的简单表格,以测试IE是否显示表格边框,或者我的css是否被覆盖了一些。当这个工作时,我意识到我的桌子是通过它的ID在其他地方被选中的(并且删除了它的边框)。当我尝试添加边框进行打印时,我选择的是它的类名而不是ID。

我也意识到jquery.jqprint插件不包括它正在打印的iframe中的doctype。现在,它在IE8中完美打印。