你怎么会让两个<div>重叠?

145 html css overlap

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

    |               |
 ---|    LOGO       |------------------------
|   |_______________|  LINKS                |
|             CONTENT                       |
Run Code Online (Sandbox Code Playgroud)

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

Owe*_*wen 84

我可能会这样(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 */
}
Run Code Online (Sandbox Code Playgroud)
<div id="logo">
  <img src="https://via.placeholder.com/200x100" />
</div>
<div id="content">
  
  <div id="links">dssdfsdfsdfsdf</div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法让内容只是避免徽标使用的空间? (2认同)
  • 我认为这意味着将内容(文本)包裹在徽标周围 (2认同)
  • 嗯,我很肯定不会.作为元素的问题可以浮动或定位,但不能同时浮动或定位.直到他们发展某种浮动:中心思想...... (2认同)

Tra*_*isO 78

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

<div style="margin-top: -25px;">
Run Code Online (Sandbox Code Playgroud)

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

  • 这是迄今为止最简单的方法,并且可以通过在页面内容上使用margin-bottom轻松地适应重叠的页脚.谢谢! (8认同)
  • 这应该是公认的答案,绝对位置容易引起问题。 (2认同)

sbl*_*ndy 5

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

div#logo {
  position: absolute;
  left: 100px; // or whatever
}
Run Code Online (Sandbox Code Playgroud)

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