我怎样才能使“显示:阻止”工作在IE浏览器的<td>?
有什么我可以做IE浏览器显示表单元格为实际块?
鉴于这种风格:
table,tbody,tr,td,div { display: block; border: 1px solid #0f0; padding: 4px; }
和这个html:
<table> <tbody> <tr> <td>R1C1</td> <td>R1C2</td> <td>R1C3</td> </tr> </tbody> </table> <div> <div> <div> <div>R1C1</div> <div>R1C2</div> <div>R1C3</div> </div> </div> </div>
该表格与Firefox和Safari / Chrome中的嵌套div完全相同。 但在Internet Explorer(8)中,属性display: block
没有任何效果。 表格完全呈现,就好像我没有设置该属性。
我的主要问题是细胞不会破裂; 他们都在一条线上呈现。 ( tbody
和tr
元素没有边界,也没有填充,但是现在对我来说不是问题)。
search时,我没有发现任何有关这个问题的信息。 在quirksmode和其他地方的兼容性图表display: block
IE自5.5版起支持display: block
。 任何关于表格显示问题的讨论似乎都是在做相反的事情 – 给予非表格元素的任何display: table-*
属性。
所以再一次,有什么我可以做IE来渲染表格单元格块吗?
(真正的表格实际上是一张表格,里面有表格数据,我想保持这种状态,并且不加扰动地重新设置它。)
我应用了float: left
东西 。 它有点作品。
现场演示
最大的问题是width: 100%
与padding
相结合使得东西太宽。
所以:
现场演示 (没有问题的padding
)
这看起来好一点,但我不知道如何在任何地方轻松地添加padding
,如果你需要它。
这在IE7中失败 – > 悲惨地 < – 它只是不会超过事实,它是一个<table>
),即使你不关心IE7,它将需要调整你的用例(如果它可以使用)。
IE7:
以下为我工作的IE6 +:
tr { 显示:块; 位置:相对 } td.col1 { 显示:块; 左:0; 顶部:0; 身高:90px; } td.col2 { 显示:块; 位置:绝对; 左:0; 顶部:30px; } td.col3 { 显示:块; 位置:绝对; 左:0; 顶部:60px; }
假设:
- 单元格高度30px
缺点:
- 固定细胞高度
-
top
属性的繁琐规格(可能会生成) - 仅当HTML为列提供类时才起作用
优点:
- 适用于所有浏览器。
何时使用:
- 当你没有控制HTML,但有控制CSS。 一些托pipe的付款解决scheme浮现在IFRAME中,并提供自定义样式表。
只是想到了我的一个同事。
尽pipe我强烈build议不要一直支持IE8! 由于您正在促进使用不受支持的和当前不安全的产品,而这种产品不符合当前的标准和技术。 告诉用户升级并给他们一些浏览器下载链接可供select。
话虽如此。 下面的CSS是您需要在Internet Explorer 8中修复它的最小css。
table { width: 100%; } td { float: left; width: 100%; }
<table> <tbody> <tr> <td>cell-1</td> <td>cell-2</td> </tr> </tbody> </table>
添加以下代码:
<!DOCTYPE html>