2012-10-26 57 views
16

我使用jQuery制作div apear,当我点击一个按钮时 - >背景应该得到0.8的不透明度,出现的div将允许用户让他登录 - 当我不使用z-索引,但我有4个div(header,content,footer和带登录表单的div)标题必须包含z-index:3和content z-index:2 - 否则阴影将无法按预期工作。z-index不起作用?

使用jQuery我在body标签后面添加了一个div,其中包含完整的一面 - 所以我可以设置不透明度,但是接下来我必须为form-div设置高于div的z-index不透明 - 但它不起作用。形式div的z-index是999,另一个div有5

任何解决方法或z-index的东西?

+2

我们需要查看HTML和CSS以给出明确的答案 – Dancrumb

+0

z-index比较棘手。您必须确保您启用元素以“使用”z-index。 'position:relative;'对于你想要保留在文档流中的项目和'position:absolute;'对于文档流以外的项目。此外,IE7有一个z-索引“bug”,它以它的父级索引为基础,并将父级z-index与其在DOM中的兄弟进行比较。这可能会导致头痛。 – jmbertucci

+0

[为什么z-index不起作用?](http://stackoverflow.com/q/9191803/1529630)可能重复,但无法知道,因为没有代码。 – Oriol

回答

39

更改元素的位置。

position: relative; 
+1

这里的文档:http://www.w3schools.com/cssref/pr_pos_z-index.asp – SamHuckaby

+0

已经尝试过:-S - 不起作用 –

+8

@SamHuckaby:这不是“the”文档。 W3Schools不是W3C。真正的文档在这里:http://www.w3.org/TR/CSS21/visuren.html#z-index – BoltClock

2

您需要确保position在您的CSS中定义。 如果你想z-index被实现为HTML的常规元素,然后将position:relative添加到你的元素。

4

老问题,但我会发帖无论如何,如果别人来寻找解决方案。

z-index并不像听起来那么简单。在元素1 = 999和元素2 = 1上创建z索引并不总是意味着元素1会在前面。

我曾经有过类似的情况,当我需要元素在前面时,我用jQuery更改了z-index,并且它工作正常。这意味着z-index关心的是你给它那个指数的时间。如果你想给它一个999的值,那么在你希望它在前面的时候给它。 这可能会使其保持在最佳状态,但其他规则可能仍然适用,即:堆叠顺序。这是一个相当大的话题,所以我只是在这里指出: http://philipwalton.com/articles/what-no-one-told-you-about-z-index/

4

你需要做一些关于父元素。

溢出:可见;

这会对你有好处。

+0

不知道为什么这个答案只有一票(我的)。这只是救了我一个**! –

+0

现在我想到了,我意识到我的问题根本不是z-index。该元素被简单切割,因为它正在从其父项流出(使用'position:absolute')。 –

+0

@GiladBarner很高兴能帮到你:) – steveluoxin