css - 图像的最大宽度属性应该在计算其包含的表格单元格的大小之前还是之后应用?

标签 css

考虑以下代码 ( jsfiddle ):

<table>
    <tr>
        <td>
            <img 
                src=some-image.png
                style="max-width: 100%;"
            >
        </td>
        <td style="
            width: 100%; 
            background: yellow;
        ">
            the second cell
        </td>
    </tr>
</table>

Firefox 33 和 Internet Explorer 11 以一种方式呈现,而 Chrome 38 以不同的方式呈现。在 FF/IE 中,图像以其自然大小显示。在 Chrome 中,图像完全消失(缩小到被遗忘)。

在我看来,当在自动调整大小的表格单元格的上下文中提供时,浏览器不同意 max-width 的含义,其中单元格是表格的一部分,其宽度超过 window 。我本来希望在应用“最大宽度”属性之前计算图像单元格的宽度。

我意识到这是一个完全人为的例子。我不是在寻找解决方法;我问是因为我只是想了解 CSS 规则的极端情况。

当涉及到百分比时,CSS 定义了一些关于框大小和布局计算顺序的非常具体的规则。知道这里发生了什么吗?哪个浏览器合适?

最佳答案

提供这个作为答案:

From the spec ,关于具有百分比值的最大宽度:

If the containing block's width depends on this element's width, then the resulting layout is undefined in CSS 2.1.

关于css - 图像的最大宽度属性应该在计算其包含的表格单元格的大小之前还是之后应用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26614009/

相关文章:

css - 宽度为 :first-letter with CSS

css - <span> 缩进环绕的文本

html - 在 Div 内部设置边框

css - 伪元素 :before and :after vertical position

HTML5 音频样式

Android WebView对hr标签进行CSS修改

javascript - 如何从我的 HTML CSS 和 JS 文件创建可重用的 javascript 网络应用程序

css - dojo 中 tabContainer 的高度

css - 使用 CSS 更改悬停时的链接不透明度

html - 媒体调整页面大小时 IE 重叠 flexbox