javascript:确保元素始终出现在顶部

标签 javascript html css

我创建了一个简单的 chrome 扩展工具来在用户将要浏览的页面上显示小文本消息(一个带有 z-index 999999 的 div)。有时,div 仍然出现在现有页面元素的下方,更糟糕的是,div 的内容发生变化,因为页面已经有了自己的 CSS 规则。

挑战在于如何确保我的文本消息显示在所有元素之上(适用于任何网站)并且看起来一致且不受现有 CSS 规则的影响。

iframe 能解决这个问题吗?但是,即使使用 iframe,它仍然需要出现在所有元素之上,而且 z-index 似乎并不总是有效。

最佳答案

如果你想用任何元素重叠任何东西,使用 z-index .您必须考虑:

  • 你必须使用最高的z-index value 你可以,为了将元素定位在同一 stacking context 中的其他元素之上.
    参见 Minimum and Maximum value of Z-INDEX .

  • 制作z-index工作,元素必须被定位。
    例如,position: relativeposition: absolute .

  • 一个巨大的z-index如果其堆叠上下文低于其他元素,则将无用。 为了避免这种情况:

    • 尽可能减少元素的祖先数量,这可能是堆叠上下文。
    • 确保它们没有堆叠上下文。他们将需要
      • z-index: auto
      • opacity: 1
      • 在某些浏览器上,position不应该是 fixed
      • will-change不应该是上面的任何属性
  • 如果有flash,无论z-index如何,你都无法重叠它除非你修改它的 wmode属性为 transparentopaque .
    请注意,此更改会损害该小程序的性能。

或者,HTML5 引入了 <dialog> 元素,其中有 showModal 方法。 Thad 方法在调用时将对话框推送到文档的 pending dialog stack。 , 这意味着它将被添加到 top layer层。

关于javascript:确保元素始终出现在顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25476525/

相关文章:

html - 电子邮件签名在回复时搞砸了

html - 段落和文本区域内的字体大小

html - 删除 HTML 电子邮件中表格行之间的间距

javascript - 具有两个 View 模型的相关可观察对象?

javascript - AngularJS。装修模型

html - 用css偏移边框外的背景颜色?

jquery - CSS 背景颜色和文本随 jquery/javascript 变化

javascript - 使用 REAL 将数组转换为对象

javascript - 如何在不调整整体宽度的情况下隐藏表格行?

javascript - jQuery:如何使用 img.attr ('src' , 'img.png' )为图像源的变化设置动画(淡入淡出)?