DIV 中的 CSS 位置困境

标签 css z-index

我正在处理我网站的顶部标题栏样式。我在 Header DIV 中放置了 2 个 DIV。 一个 Div 在顶部,而另一个在底部。 顶部专用于左侧 Logo 和右侧链接,而底部 Div 专用于水平菜单(我将在稍后完成)。

我的问题出在 Logo 的位置上。我的 Logo 比顶部的 Div 略高,这导致底部的 Div 只是覆盖了我的 Logo 的底部。如果我裁剪或调整 Logo 的大小,问题就解决了。但我不想那样做。我想在更高的 z-index 上制作 Logo 。但它不起作用。似乎忽略了 z-index。

这是我目前所拥有的:

<div id="siteHeader">

   <div id="headernav-top" style="height:50px;">
    <div id="headerlogo" style="height:72px;background-image:url('logo.jpg');background-repeat:no-repeat;">
    </div>
    <span id="headertext">  
        Welcome Back, <b>Whomever you are</b> | 
        <a href="/">My Account</a> | 
        <a href="/logout.php">Log Off</a> <br />
    </span>
  </div>

  <div id="headernav-bottom" style="height:39px;background-color:#0C6;">

    More Nav will go here

  </div>
</div> <!-- end siteHeader -->

headernav-bottom 确实覆盖了 headerlogo div 中 72px 高度 Logo 的底部。

当我将 z-index 放在两个 div 中时,它似乎被忽略了。

是否有另一种方法可以让 headerlogo 位于 siteHeader div 上方?

最佳答案

看来你已经found the answer aaaa 这就是为什么会出现这种情况的原因:对于静态定位的元素(默认),z-index 忽略。 z-index 只有应用于 positon:relativepositon:absolutepositon:fixed 元素时才会生效。

添加非静态位置属性是一种强制元素堆叠的常用方法。使用哪一个也很重要:

position:relative
这将允许您的元素在文档中保持其流动。使用这个元素将防止其他元素折叠到该元素作为静态元素占据的区域。

position:absolute位置
这使元素脱离流动。与 relative 相反,这将在文档中为其提供 0px x 0px 的有效大小。然后其他元素将折叠到该元素原本会占据的区域中。 (请注意,这有时会使这些元素隐藏在您的 absolute 元素后面。)

位置:固定
absolute 相同。流出,但对于这个,元素是相对于窗口而不是第一个非静态父元素。 (仅当您使用 toprightbottomleft 定位时才重要)它也会出现滚动时“粘”在窗口上。

对于您的目的,没有定位属性的 position:relative 可能是最好的。

关于DIV 中的 CSS 位置困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13276933/

相关文章:

css 响应框宽度 90% * 95% with 5% 5% 0 5% margin

html - 按钮在移动设备上不起作用

javascript - 如何修改jQuery生成的div?

html - 子元素的 z-index 是父元素的本地元素吗?

html - CSS:类似于将元素的框阴影放置在与元素不同的 z-index 处的效果

html - 无法使用 z-index 将一个 div 与另一个 div 重叠

html - 如何通过水平父 block 使图标居中?

javascript - 使图像大小相同,并且不会失真

css - 如何强制CSS边框显示在分层页面上?

javascript - HTML/CSS - 在 img 标签上显示文本