使用CSS的填充表在IE上不起作用

fab*_*bio 6 html css internet-explorer html-table padding

这不适用于我的IE:

<table style="padding:5px">...</table>
Run Code Online (Sandbox Code Playgroud)

但它适用于Opera.

有解决方法吗?

Ben*_*Lee 18

早期的CSS规范(IE6遵循 - 我使用"松散地跟随"这个词)并不清楚表格中定义的填充应该是什么意思.IE6当然决定通过忽略填充来解释与其他浏览器不同的解释.其他浏览器决定通过在表格边框和最外面的单元格之间添加间距来渲染它,而不会影响单元格内​​部或内部单元格之间的间距.到IE7问世的时候,规格已经像其他浏览器一样清理,但IE6仍然存在问题,它只是忽略了填充.

最好的解决方案是避免在桌面上放置填充,而是用div包围它,然后将填充物放在那里.

<div style="padding: 5px;">
    <table...>
    </table>
</div>
Run Code Online (Sandbox Code Playgroud)

当然,如果你想要的是单元格间距或单元格填充(而不是只是在桌面上填充),那么你应该使用cellspacingcellpadding属性(即使你不想要这些,你至少需要cellspacing="0"避免另一个单独的问题用IE6表渲染).

此外,此处的内联样式仅用于演示目的; 使用css类通常被认为是更好的做法.

  • 非常感谢,你的答案非常完整.我不得不使用填充div,它工作正常.另外,感谢IE6使用cellspacing ="0"的建议,我不知道.不同的浏览器中有许多奇怪的东西,如果我知道的话会节省我很多时间.希望有一天能够全面了解它们.再次感谢. (2认同)