在此测试用例中禁用边框折叠

Bor*_*ens 0 html css

如果您查看以下演示HTML,您会看到所有浏览器页面顶部都有一个意外的橙色边框(我已选中).如果<p>标记被<div>标记替换,那么一切都像预期的那样工作.

<!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">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Test Lay-Out</title>         
        <style>
            html{
                overflow: auto; /*for IE*/
                height: 100%;
            }

            body{
                background-color: orange;
                margin: 0;
                height: 100%;
            }
            #page{
                background-color: green;

                height: 100%;
                margin-bottom: -50px;
            }
            #footer{
                background-color: red;
                height: 50px;
            }
        </style>
    </head>
    <body>
        <div id="page">
            <p>test</p>
        </div>
        <div id="footer">footer</div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是因为<p>有一个上边距,并且通过边框折叠会折叠到父元素.虽然这是创建文本段落等所需的效果,但它很少用于布局.
如何确保边界不会升级到某些元素(在这种情况下从<p;到父div)?

--UPDATE--
因为答案似乎都在"禁用段落上的填充"道路上,我重新设计了我的问题并改变了标题.
从p中移除填充是一种消除症状的方法,而不是原因.

Jin*_*Jin 5

body/html的填充也需要重置.