尽管将边距和填充设置为0,但我的网站顶部还是有32px的间隙。我知道它是32px,因为我可以使用填充来修复它:-32px。但是然后我在底部有一个缺口!在Firebug中,即使我已将边距和填充设置为0,但正文似乎仅从HTML元素的开头开始向下32px。

这是我的CSS:

html {
  height: 100%;
  padding: 0;
  margin: 0;
}

body {
  background-color: #a7a9ac;
  color #666666;
  background-image: url('body-bg.gif');
  background-repeat: repeat-x;
  height: 100%;
  padding: 0;
  margin: 0;
}

body, p, ol, ul, td {
  font-family: verdana, arial, helvetica, sans-serif;
  font-size:   13px;
  line-height: 18px;
}

.container_banner h1{
  font-size: 48px;
  position: relative;
  top: 130px;
  left: 250px;
  width: 400px;
}

.container_banner h3{
  position: relative;
  top: 0px;
  left: 32px;
  font-size: 10px;
  color: #F8F8F8;
}

.container_banner{
  position: relative;
  top: 0px;
  background-image: url('banner.png');
  background-repeat: no-repeat;
  margin: 0 auto;
  width: 945px;
  height: 188px;
  padding: 0px;
  background-color: #ffffff;
}

.container{
  position: relative;
  top: 0px;
  margin: 0 auto;
  min-height: 100%;
  width: 945px;
  padding: 0px;
  padding-top: 20px;
  margin-bottom: 0px;
  background-color: #ffffff;
  background-image: url('thin-background.png');
}

.content{
  margin-top: 0px;
  margin-left: 30px;
  min-height: 100%;
}

容器标语是最上面的div,然后是容器(包括内容)。

最佳答案

我认为这是由于使用位置引起的:相对和您的h1元素默认继承了边距。当您使用position:relative时,页边距似乎并没有随着实际内容移动,因此被应用到页面顶部。

我更改了相关的CSS来解决此问题:

.container_banner h1{
  font-size: 48px;
  position: relative;
  top: 130px;
  left: 250px;
  width: 400px;
  margin-top: 0;
}

您可能需要对其他所有设置为position的元素进行相同操作:relative并有一个边距(例如h3标签)

最好减少相对位置的使用,因为很难预测这种行为。

10-05 22:28