【问题标题】:div inside td,but td is unexpectedly expandedtd 内的 div,但 td 意外展开
【发布时间】:2010-11-21 04:24:11
【问题描述】:
<td>
<div id="test">...</div>
</td>
<td>
.....
</td>

我可以从 firebug 看到 td 比“测试” div 宽大约 40px(包括宽度+边框+边距),但是没有 css 样式可以做到这一点(没有设置宽度,填充)!

为什么这里的“td”没有div那么宽?

我现在将 td to9 硬编码为与“测试” div 一样宽,但感觉不舒服。

【问题讨论】:

    标签: css html html-table


    【解决方案1】:

    如果没有您的其余代码,我将在这里冒险,但&lt;td&gt; 将根据表格宽度/表格中的列数自动调整大小。如果您的表格没有明确分配宽度,那么它将扩展到其容器或父元素的 100% 宽度。您可以通过在表格上设置显式宽度或根据需要设置表格单元格来轻松避免这种情况。

    在以下场景中,每列将自动调整为表格宽度/列数,或者在本例中为 400 / 4 = 100。因此每列将是 100px 宽。

    <table style="width:400px">
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    </table>
    

    根据浏览器的不同,这种情况有两种可能的结果。 1. 表格将扩展为其父级宽度的 100%,或此处为 600px。这意味着每列将自动调整为 150 像素宽。 2. 表格和列可以扩展到其列组中最宽的子元素的宽度。

    <body style="width: 600px"> <!-- Could be a div or other element here -->
    <table>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    </table>
    </body>
    

    WC3 规范可以在here 找到,它提供了一些关于浏览器应该如何实现有关表格的 HTML 4.01 规范的详细信息。

    【讨论】:

    • 没有指定 td 宽度,自动调整大小是如何完成的?我以某种方式触发了我不期望的自动调整大小!我的意思是 td(s) 根据其内容分配了不同的宽度。但是这是怎么做的呢?
    • 浏览器根据 WC3 建议管理表格列的自动调整大小 - 可以在 w3.org/TR/html401/struct/tables.html#h-11.2.4.4 找到规范
    猜你喜欢
    • 1970-01-01
    • 2014-01-19
    • 2010-11-09
    • 2017-03-14
    • 2011-04-19
    • 2011-11-23
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    相关资源
    最近更新 更多