【问题标题】:Absolute positioned DIV hovers over other elements绝对定位的 DIV 悬停在其他元素上
【发布时间】:2012-01-25 08:41:55
【问题描述】:

我有两个几乎相同的 JSP 页面。每个页面都有一个具有“位置:相对”属性/值的外部 DIV。每个页面还有一个内部 DIV,该 DIV 具有“位置:绝对”属性/值。

在一个页面上,绝对定位的 DIV 不会悬停在页面上的任何其他元素上 - 它只是在我调整窗口大小时在移动到其他元素上之前停止移动。

在另一个页面上(具有完全相同的外部 DIV 和内部 DIV 属性和值),当我调整窗口大小时,绝对定位的 DIV 确实会悬停在页面上的其他元素上。

对为什么会发生这种情况有任何想法吗?我最终希望两个绝对定位的 DIV 都不要悬停在页面上的任何其他元素上...

这是所涉及的标记和 css 的 sn-p...

CSS
.BODY_OUTLINE {
position: relative;
border:2px outset white;
border-top: none;
font-style: normal;
margin: 0px;
margin-right:7em;
padding-top:0px;
FONT-FAMILY: arial, tahoma, verdana, sans-serif;
width:100%;
}

HTML
<DIV CLASS="BODY_OUTLINE">
...
<DIV STYLE="border:10px outset gray; position:absolute; right:20%; top:20%;">

【问题讨论】:

  • 这是针对 IE 8 的,特别是 BTW
  • 如果您想要答案,请发布相关的html + css...
  • 如果没有一些标记和 CSS,很难回答这个问题。
  • 注意:在发布代码 sn-ps 时,请不要发布 JSP 代码,而仅发布其生成的 HTML/CSS,因为 Web 浏览器已检索到这在 HTML/CSS 问题中很重要。跨度>
  • 编辑了这篇文章并提供了示例标记和 CSS

标签: html css


【解决方案1】:

很难说,因为我不知道页面上的其他元素,但我会尝试在你的 div 上使用 z-indexes:

.BODY_OUTLINE {
position: relative;
z-index:999; /* do this for all elements that have position absolute or relative */
}

<DIV STYLE="border:10px outset gray; position:absolute; right:20%; top:20%; z-index:1">

【讨论】:

  • 感谢您的评论 - 我尝试了 z-index 并仔细阅读了它,但它对解决这个问题没有特别的帮助。我最终完全放弃了页面上的绝对位置......
【解决方案2】:

如果这些元素本身没有特别限制以防止它发生,那么绝对定位的元素将始终“悬停”在页面上的其他元素上。这是因为 absolute 元素不流畅(也就是说,它们被其他元素忽略,并且它们本身也忽略了大多数其他元素;relative 定位的父元素是一个例外)。

您有一个页面似乎按照您的意愿行事,这可能是“意外”造成的。我不能告诉你确切的原因,因为你只发布了 BODY_OUTLINE 包装器和 absolute div 的代码,但所有其他项目和 css 也可能与这个问题有关,因为正如我上面所说,其他元素必须通过大小、边距、自身定位等来说明绝对定位的元素。

【讨论】:

  • 我认为绝对元素的典型行为是不流畅的,所以奇怪的是其中一个页面没有悬停在上面......我会尝试更深入地挖掘一下为什么...我想我也会尝试重新格式化页面,这样我就不必使用绝对定位...谢谢。
  • 我最终重新定位了整个页面以避免一起使用绝对定位...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-01
  • 2012-07-15
  • 2015-02-02
  • 1970-01-01
  • 2017-09-18
  • 1970-01-01
  • 2021-11-24
相关资源
最近更新 更多