【问题标题】:Fullscreen minus z-index anchor not clickable全屏减去 z-index 锚点不可点击
【发布时间】:2011-04-20 06:12:37
【问题描述】:

问题

我正在使用超大的 jQuery 作为全屏背景图像,这将是一个可点击的广告。在标记的主要内容之上,我使用了锚标记、固定位置、-1 的 z-index、显示块和 100% 的高度/宽度。所有这一切都完美无缺,问题是当应用 z-index 时,该锚标记的“可点击性”消失了。

有人有什么想法吗?我可以使用 2 个锚标签,定位主要内容的绝对位置并将它们推到每一侧,但是我不确定通常如何应用这种效果。

任何帮助将不胜感激

【问题讨论】:

  • 否,因为内容在 960 像素宽的包装内。当z-index改变时,整个页面变得可点击,似乎当z-index改变为-1时,锚标签消失了,但如果我输入它,类型在背景图像上方。
  • 如果您创建 jsFiddle test case 或提供实时页面供您查看,我会看看。
  • 这是对项目的后期添加,请给我几分钟整理一个基本的实时页面。
  • 感谢 Snake Faust 的帮助,就像我打开了实时页面一样!

标签: css xhtml


【解决方案1】:

z-index 越低,它在堆叠上下文中的位置就越低。

理论上,在锚点上放置 -1 会将其置于 z-index 为 0 的元素下方,因此您可能会因此失去点击能力。

我找不到支持这一点的参考,但我认为不允许使用负值。

堆叠上下文参考: TimKadlec.com -- Detailed Look at Stacking in CSS

更新

一些快速的摆弄显示锚上的 z-index 为 -1:

  • 与 页面上没有其他内容——成功了 在 Chrome 中不可点击。
  • 与 页面上只有一个其他元素 -- 使锚点不可点击 Chrome 和 Firefox(但不是 IE8)

...所以我建议不要使用负 z-index。将其提高到 0,并将 z-index 设置为 1 的兄弟姐妹,看看是否有效。

【讨论】:

  • 是的,它把它放在 z-index 为 0 的内容之下,这就是计划。然而,不可点击的区域跨越了整个宽度,而不仅仅是上面内容的宽度。 W3 表示允许使用负值。
  • 我明白了。你能发布一些标记和css吗?也许在 jsfiddle.net?
  • 是的,css/html 非常简单。全屏锚标签的 CSS code #fullscreen-ad { width:100%;高度:800px;显示:块;位置:固定;顶部:0; z-索引:-1;背景:蓝色; } code 和内容包装器#site-wrapper { background:#fff;宽度:960 像素;边距:36px 自动 0 自动;除了标记中的 tha 之外,它是一个非常简单的锚标记,后跟 div。
  • 我仍然认为负 z-index 是你的问题。查看我的答案的更新。
  • 非常感谢。我刚刚启动了实时页面,并使用 1 和 2 作为值进行了更改,并在包装​​器上使用了 pos:rel 。 eagleworks.co.uk/fsadvert 按计划工作,谢谢。
【解决方案2】:

即使您的某些元素可能有不可见的背景,您仍然无法点击它们。您必须首先确定不会导致点击广告的元素集。它们都必须是您的广告的兄弟元素或其子元素。现在,如果您在它们上设置background-color:red,则用户的点击不会触发您的广告(这当然只是为了形象化)。如果需要,您现在可以将广告的 z-index 设置为 -1。

之后您可能需要将position:relative 放在所有这些元素的父元素上,而不是正数。

body 标签也有可能会干扰。

【讨论】:

  • 我相信我明白了,但是如果我的内容包装器只有 960px 宽,并且后面的锚标记是 100%,我没有点击背景?
猜你喜欢
  • 2012-11-27
  • 2015-02-04
  • 1970-01-01
  • 2022-08-18
  • 2015-09-06
  • 1970-01-01
  • 2016-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多