你会如何使两个<div>重叠?</div>

时间:2008-11-06 22:02:11

标签: css html overlap

我需要两个div看起来有点像这样:

    |               |
 ---|    LOGO       |------------------------
|   |_______________|  LINKS                |
|             CONTENT                       |

使它们整齐重叠的最佳/最优雅的方法是什么?徽标将具有固定的高度和宽度,并将触及页面的顶部边缘。

5 个答案:

答案 0 :(得分:77)

我可能会这样(CSS和HTML):

html,
body {
  margin: 0px;
}
#logo {
  position: absolute; // Reposition logo from the natural layout
  left: 75px;
  top: 0px;
  width: 300px;
  height: 200px;
  z-index: 2;
}
#content {
  margin-top: 100px; // Provide buffer for logo
}
#links {
  height: 75px;
  margin-left: 400px; // Flush links (with a 25px "padding") right of logo
}
<div id="logo">
  <img src="http://www.skrenta.com/images/stackoverflow.jpg" />
</div>
<div id="content">
  
  <div id="links">dssdfsdfsdfsdf</div>
</div>

答案 1 :(得分:71)

只需使用负边距,在第二个div中说:

<div style="margin-top: -25px;">

并确保设置z-index属性以获得所需的分层。

答案 2 :(得分:4)

通过绝对或相对定位,您可以进行各种重叠。您可能希望徽标的样式如下:

div#logo {
  position: absolute;
  left: 100px; // or whatever
}

注意:绝对位置有其偏心。你可能需要进行一些实验,但要做你想做的事情应该不会太难。

答案 3 :(得分:1)

使用CSS,将logo div设置为绝对位置,并将z-order设置为高于第二个div。

#logo
{
    position: absolute:
    z-index: 2000;
    left: 100px;
    width: 100px;
    height: 50px;
}

答案 4 :(得分:1)

如果您希望徽标占用空间,您最好将其向左浮动,然后使用保证金向下移动内容,如下所示:

#logo {
    float: left;
    margin: 0 10px 10px 20px;
}

#content {
    margin: 10px 0 0 10px;
}

或你想要的任何边际。