Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 是什么导致IE/FF折叠宽度:表内有0个内联块,但Chrome/Opera没有?_Html_Css_Webkit_Blink - Fatal编程技术网

Html 是什么导致IE/FF折叠宽度:表内有0个内联块,但Chrome/Opera没有?

Html 是什么导致IE/FF折叠宽度:表内有0个内联块,但Chrome/Opera没有?,html,css,webkit,blink,Html,Css,Webkit,Blink,在本文中,我们发现了Blink和Firefox/IE之间一个有趣的区别。规范的哪一部分涉及到这个问题,以及谁做得正确 假设您有一个包含1列和2行的表。第1行有一堆内联文本,第2行有一个固定宽度的块 <table> <tr> <td> blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah

在本文中,我们发现了Blink和Firefox/IE之间一个有趣的区别。规范的哪一部分涉及到这个问题,以及谁做得正确

假设您有一个包含1列和2行的表。第1行有一堆内联文本,第2行有一个固定宽度的块

  <table>
    <tr>
      <td>
        blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
      </td>
    </tr>
    <tr>
      <td>
        <div class="fixed-width"></div>        
      </td>
    </tr>
  </table>

Chrome和Opera将忽略宽度:0,并扩展到100%

Firefox和IE11将把表格折叠成尽可能小的宽度


这是Blink/webkit或IE/FF缺少规范的情况吗?是否未指定此行为?

表格规格说明
如果未设置宽度属性,表格将占用显示表格数据所需的空间。
只需webkit计算,它需要100%的可用宽度才能在单元格内显示长文本(noone说它应该采用最小宽度-这样单元格高度就会增加)。由于无法应用表格宽度,因此不考虑该宽度。在上面的示例中,如果您使用:

table {
    width: 300px;
} 
它将被应用。 如果您不想设置表格宽度,但想使其尽可能小,请改为将样式应用于表格单元格:

table td {
    width: 1px;
}

这在除IE7之外的所有浏览器中都很好。

设置
display:block
for
table
修复了Chrome中的错误。只是预感,我没有太多睡眠,所以只需从表面上看一下,但收缩到适应算法(根据CSS 2.1规范实现定义)开始发挥作用,我认为表格单元格符合规范中的要求。因此我猜“行为未指定”不是很有用,但是如果在一个宽度为0的容器中,它的行为与它应该的一样。(display+div),(table)哪种表格规格?除了设置了表格宽度-设置为0。关于将样式应用于
td
的公平点。你能链接到你正在选址的表格规格吗?我仍然不确定哪种行为是正确的还是未指定的?您可以在这里找到表的定义和用法:零的宽度不能应用于表-它不是块元素,它将自动扩展到
以占用显示表数据所需的空间
table td {
    width: 1px;
}