1

我在单元格中有一个表格,该表格正在“离开”单元格,如以下屏幕截图所示:

替代文字 http://img.skitch.com/20090120-pe4iykdqpymqaxr96tpubiqn7j.png

我在 Firefox 上看到了这个。这是“正常”吗?我怎样才能解决这个问题?

编码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <body>
        <table border="1">
            <tr>
                <td>
                    <table border="1" style="margin-left: 3em; width: 100%">
                        <tr>
                            <td>gaga</td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>

    </body>
</html>
4

7 回答 7

2

内表被告知与其容器一样宽(width: 100%),然后从左边缘移动 3ems:(margin-left: 3em

将最里面的 TD 切换到padding-left可能有帮助的位置。

但这里的标准反应是:“哦,天哪,你为什么要做嵌套表,你这个坏坏人!!11”

于 2009-01-20T01:58:35.510 回答
1

未经测试:取出 'margin-left' 并改用 'padding-left'。

或者

您可以在不使用嵌套表的情况下缩进单元格值,方法是将 padding-left 添加到父表“td”。

于 2009-01-20T01:54:11.540 回答
1

发生这种情况是因为您正在设置“margin-left:3em”,并且它正在向外推动子表。

于 2009-01-20T01:59:56.507 回答
0

尝试这个:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <body>

        <table border="1">
            <tr>
                <td style="padding-left: 3em;">
                    <table border="1" style="width: 100%;">
                        <tr>
                            <td>gaga</td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>

        <table border="1">
            <tr>
                <td>
                    <table border="1" style="margin-left: 3em; width: 100%">
                        <tr>
                            <td>gaga</td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>

    </body>
</html>

在父 TD 上将 margin-left 从 TABLE 元素更改为 padding-left (就像Jobo说的)

于 2009-01-20T02:35:36.497 回答
0

只需删除该表的“宽度”属性,您应该会看到它会保留在单元格内,即使是长文本也是如此。

于 2009-01-20T03:18:09.983 回答
0

这是因为您将表格宽度设为 100%。它将边距添加到此元素上,以使元素具有> 100%的宽度。如果您想解决这个问题,请在嵌套表格上方添加一个 div 或其他内容,边距为:3em,您可以将表格的宽度保留为 100%。

编辑:为了回应乔博对他的回答的评论,tds 不支持边距;但是, padding-left: 3em 应该可以代替。

于 2009-01-20T01:56:09.103 回答
-2

这不是攻击,而是帮助您成为更好的开发人员:

  1. 永远不需要有子表。
  2. 如果您要使用 CSS,那么就使用一个或多个外部文件。
  3. 这将帮助您作为 Web 开发人员进行开发 - 考虑您希望如何构建页面,然后使用正确的标记来生成该结构 - 一旦标记有效,您可以担心样式。
于 2009-01-20T01:57:16.900 回答