相关疑难解决方法(0)

如何在IE中的<td>上进行"display:block"工作?

有什么办法可以让IE显示表格单元格作为实际块吗?

鉴于这种风格:

table,tbody,tr,td,div {
  display: block;
  border: 1px solid #0f0;
  padding: 4px;
}
Run Code Online (Sandbox Code Playgroud)

这个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>
Run Code Online (Sandbox Code Playgroud)

该表呈现与Firefox和Safari/Chrome中的嵌套div完全相同.但在Internet Explorer(8)中,该属性display: block无效.该表呈现的方式与我没有设置该属性完全相同.

我的主要问题是细胞不会破裂; 它们全部呈现在一条线上.(tbodytr元素没有任何边界也没有填充.但是现在对我来说这不是问题.)

我在搜索时没有找到有关该问题的任何信息.quirksmode和其他地方的兼容性图表表明IE支持v.5.5display: block.关于表显示问题的任何讨论似乎都是在反向时 - 为非表元素提供任何display: table-*属性.

再一次,有什么办法可以让IE渲染表格单元格成块吗?

(真正的表格实际上是一个表格,包含表格数据.我希望保持这种方式,并且不显眼地重复它.)

html css internet-explorer internet-explorer-8

37
推荐指数
1
解决办法
6万
查看次数

当应用于表格单元格时,如何使内联块一致地呈现?

我有一个简单的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元素的典型/建议方式.我在渲染引擎的预期行为的上下文中询问.我不是在寻找与选择语义上合适的标签相关的答案.

html css html5 google-chrome internet-explorer-9

5
推荐指数
1
解决办法
1万
查看次数