【问题标题】:iframe preventing z-index from working?iframe 阻止 z-index 工作?
【发布时间】:2011-12-28 20:11:51
【问题描述】:

我一直在尝试使用 z-index css 属性使一个元素始终位于另一个元素的前面,但它不起作用。一个元素的 z-index 明显大于另一个,但它仍然位于另一个元素的后面。可能是因为其中一个元素(出现在前面的那个)是 iframe 吗?有人有其他建议吗?

【问题讨论】:

  • 你定位 iframe 了吗?
  • 否,但另一个元素有绝对位置。
  • 您必须定位要放置 z-index 的元素。即使 position:relative 也可以。
  • 谢谢,但实际上并没有做任何事情。
  • 那你做错了,贴一些代码:)

标签: html css iframe z-index


【解决方案1】:

对于那些稍后到达这里的人,正确的答案是将position: relative; 或任何其他position 道具放在有问题的元素上。

我的建议是将这个放在与问题相关的每个元素上:

position: relative;
z-index: 0;

然后在 iframe 前面的最后一个元素上增加 z-index

如果你这样做,你会很快开始获胜。

在我在这里的测试中,z-index 仅在您明确设置了position 时才有效。通过调整z-index 值来测试它,然后尝试通过单击鼠标突出显示屏幕上的文本。您应该会看到层的行为符合预期或非常不正确的证据。

如果您按 F12(在 Chrome 中打开开发窗格)然后单击左上角的检查按钮或按 CTRL + SHIFT + C。然后,您可以将鼠标悬停在所有内容上并查看它们的堆叠上下文相对于相邻元素的关系。

UX 奖励提示:请记住,用户可能想要复制文本,因此请确保他们可以选择它。

如果您遇到问题,很可能是:

  1. 元素的父元素上缺少position: relative;,或者
  2. 在某处缺少z-index: 0;

【讨论】:

    【解决方案2】:

    请记住,z-index 索引只计算绝对元素。两个元素都应该有位置:绝对。更多信息在CSS 2.1 Specification

    【讨论】:

    • 它们可以相对定位、绝对定位、继承。没关系。只要他们有一个职位:)
    • 是的,我认为除了 position:static 之外的所有位置都有效,如果您不更改它是默认值(因此位置继承有时不起作用)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多