Nat*_*ell 5 html css html5 google-chrome internet-explorer-9
我有一个简单的HTML表格,我想在每个现代浏览器(IE9,最新的FF,Chrome,Safari)中一致地呈现.如果我将宽度和"display:inline-block"应用于表格单元格,FireFox 4和Chrome将允许表格单元格"换行"到第二行,就好像它们只是常规的内联块元素一样.然而,在IE9中,单元格被视为经典表格单元格,并且不保持其宽度并且被压缩成一行.
代码的完整示例如下:http://jsbin.com/ujeber/6
是否有一个CSS属性可以应用于table,tr或td元素,以使IE9,Chrome和FireFox 4的行为方式相同?如果没有,这些浏览器中的哪一个正确遵循标准,或者在这种情况下标准是否含糊不清?
标记:
<table>
<tr>
<td>Test1</td>
<td>Test2</td>
<td>Test3</td>
<td>Test4</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
样式:
td {
width:300px;
display:inline-block;
}
table {
width: 650px;
}
Run Code Online (Sandbox Code Playgroud)
我知道这不是使用table元素的典型/建议方式.我在渲染引擎的预期行为的上下文中询问.我不是在寻找与选择语义上合适的标签相关的答案.
我找不到让IE9给你想要的结果的方法display: inline-block
.
除非您的实际用例与您的简化测试用例有所不同,否则您应该只能切换到float: left
on td
,这确实有效:
float
s并且inline-block
通常可以互换.但是,他们都有不同的优点和缺点.使用float
s,您必须清除/包含它们.有了inline-block
,你必须处理额外的空白(通常通过删除HTML中的空格来修复),如果没有进一步的技巧,它在IE6/7中不起作用.
归档时间: |
|
查看次数: |
10141 次 |
最近记录: |