CSS Margin:0未设置为0

时间:2011-03-22 06:21:36

标签: html css margin

我是网页设计的新人。我使用CSS和HTML创建了我的网页布局,如下所示。问题是即使我将边距设置为0,上边距也没有设置为0并留下一些空间。我怎样才能清除这个空白区?

问题的屏幕截图

There's a space in top

样式表

<style type="text/css">
body{   
    margin:0 auto; 
    background:#F0F0F0;}

#header{
    background-color:#009ACD; 
    height:120px;}

#header_content { 
    width:70%; 
    background-color:#00B2EE;
    height:120px; 
    margin:0 auto;
    text-align:center;}

#content{   
        width:68%; 
        background-color:#EBEBEB;
        margin:0 auto; 
        padding:20px;}
</style>

HTML

<body>
    <div id="header">
     <div id="header_content">
           <p>header_content</p>
       </div>
    </div>
<div id="content">
Main Content
</div>
</body>

这是整个文件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Book Shop</title>
<style type="text/css">
html, body, #header {
    margin: 0 !important;
    padding: 0 !important;
}
body{   
    margin:0;    padding: 0;
    background:#F0F0F0;}

#header{
    background-color:#009ACD; 
    height:120px;}

#header_content { 
    width:70%; 
    background-color:#00B2EE;
    height:120px; 
    margin:0 auto;
    text-align:center;}

#content{   
        width:68%; 
        background-color:#EBEBEB;
        margin:0 auto; 
        padding:20px;}

body {
   margin: 0;
   padding: 0;
}
</style>
</head>

<body>
  <div id="header">
     <div id="header_content">
           <p>header_content</p>
       </div>
    </div>
<div id="content">
Main Content
</div>

</body>
</html>

12 个答案:

答案 0 :(得分:31)

...试

body {
   margin: 0;
   padding: 0;
}

jsFiddle

由于浏览器使用不同的默认样式表,有些人建议使用重置样式表,例如Eric Meyer's Reset Reloaded

答案 1 :(得分:21)

您需要将实际页面设置为margin:0并将padding:0设置为实际的html,而不仅仅是正文。

在你的css样式表中使用它。

*, html {
    margin:0;
    padding:0;  
}

将整个页面设置为0,以便在没有边距或填充的情况下进行全新清理。

答案 2 :(得分:4)

你应该有(或两者):

  1. 一个paddding!=身上的0
  2. 一个边距!#header
  3. 上的= 0

    尝试

    html, #header {
        margin: 0 !important;
        padding: 0 !important;
    }
    

    margin是“空间”框,padding是“空间”里面框(边框之间)和内容)。 !important防止后一规则覆盖财产。

答案 3 :(得分:3)

尝试

html, body{
  margin:0 !important;
  padding:0 !important;
}

答案 4 :(得分:3)

h1 {
margin-top:0;
padding-top: 0;}

它&#39;只是对h1标签的误解。你必须将h1标签margin-top和padding-top设置为0(零)。

答案 5 :(得分:1)

只需在主 CSS 的开头使用此代码即可。

       * {
           margin: 0;
           padding: 0;
         }

以上代码几乎适用于所有浏览器。

答案 6 :(得分:0)

似乎没有人真正阅读过您的问题并查看了您的源代码。以下是您一直在等待的答案:

#header_content p {
    margin-top: 0;
}

jsFiddle

答案 7 :(得分:0)

阅读本文并对相同问题进行故障排除后,我同意它与标题有关(h1肯定,没有与其他任何人一起玩过),浏览器样式添加边距和填充以及难以找到的巧妙规则和覆盖骑。

我已经采用了一种技术,用于将box-sizing属性适当地应用于边距和填充。用于大小调整的原始文章位于CSS-Tricks

html {
margin: 0;
padding: 0;
}
*, *:before, *:after {
margin: inherit;
padding: inherit;
}

到目前为止,这完全是不使用复杂重置的技巧,并且无论如何都使得设计更容易应用。希望它有所帮助。

答案 8 :(得分:0)

将此代码添加到主CSS的开头。

*,html,body{
  margin:0 !important;
  padding:0 !important;
  box-sizing: border-box !important;;
}

答案 9 :(得分:0)

我今天才开始学习CSS,并且遇到了同样的问题,我认为您无需重置所有HTML标签的样式。您需要重置使用的顶部HTML的默认边距,即段落标记。而且我知道这是个老问题,但是也许我下面的解决方案会有所帮助。

尝试一下:

body{   
    margin: 0; 
    background:#F0F0F0;
}
p{
    margin: 0;
}

答案 10 :(得分:0)

这很简单。只需将其添加到正文中即可。

body{
margin:0;
padding:0;
overflow:hidden;
}

答案 11 :(得分:-2)

尝试

body {
    margin: 0;
    padding: 0;
}

代替

.body {
    margin: 0;
    padding: 0;
}

请勿使用类选择器选择正文。