为什么p标签的边距在放入td时会消失?

时间:2012-04-11 17:57:24

标签: html css

我在p中添加了td标记,如下所示:

<html>
    <head>
        <title></title>
    </head>
    <body>
        <table>
            <tr>
                <td style="font-size: 16px;"><p>Hello</p></td>
            </tr>
        </table>
    </body>
</html>

默认边距已从p标记中消失。为什么会出现这种情况?如何恢复默认的p代码边距?

我认为这与font-size无法级联有关,因为p代码边距基于em,但这没有帮助。

我不想直接向p标记添加边距,还有其他方法吗?

4 个答案:

答案 0 :(得分:2)

只需在页面中添加doctype声明:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <table>
            <tr>
                <td style="font-size: 16px;"><p>Hello</p></td>
            </tr>
        </table>
    </body>
</html>

如果没有它,您的页面将以怪癖模式显示,其中页边距可能会出现异常,特别是在表格方面。我不确定这里究竟发生了什么导致ptd时失去其边距,但我知道它只发生在怪癖模式中。

答案 1 :(得分:0)

我不确定你的消失是什么意思,但是你可以一般地定位你的p,然后将它们填充一点:

​td > p
{
  padding:15px;       
}​

如果需要,可以使选择器更严格。

答案 2 :(得分:0)

可能有多种原因:

  1. 这个问题只出现在IE中吗?这可能是怪癖模式的问题,所以最好添加BoltClock提到的doctype
  2. 如果它在FF中也是可重现的,那么在Firebug的Style选项卡的Side panel中启用“Show User Agent CSS”。然后你可以检查哪个CSS覆盖了浏览器提供的默认CSS。可能有一些像

    这样的CSS
    table p {
       margin: 0;
    }
    

答案 3 :(得分:0)

浏览器会在每个

元素之前和之后自动添加一些空格(边距)。可以使用CSS修改边距(使用边距属性)。

           td p 
              {
               margin:0px;
              }