在 Internet Explorer 7 中使用 z-Index 定位 div
OUTERFOO;FOOOUTERBARBAR;
我希望 FOO 堆叠在 BAR 上,而不希望 OUTERFOO 堆叠在 OUTERBAR 上!
这在 Firefox 中有效,但在 IE7 中无效。 有人可以发布解决方法吗?
提前致谢, 斯蒂芬
<div style="position:relative;"> OUTERFOO <div style="position:absolute; z-index:1000;">FOO</div></div>
<div style="position:relative;">OUTERBAR <div style="position:absolute;">BAR</div> </div>
I want FOO to stack over BAR without OUTERFOO stacking over OUTERBAR!
This works in Firefox, but not in IE7.
Can someone post a workaround?
Thanks in advance,
Stephan
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
事实上,W3C 定义了标准但没有创建实现,这导致了不同的解释,无论哪种浏览器的做法“正确或错误”。
在所有浏览器中执行您想要的操作的正确方法如下:
或
不需要带有荒谬数字的 ziindexes - 这会导致混乱。
基本上,当您使用 z-index 时,您应该定位所有同级元素和父元素,并且为了清晰起见,您应该对所有同级元素进行 z-index。这会带来更多的麻烦。
您在问题中尝试执行此操作的方式违反了分层的基本规则,例如:
您正在寻找一种使用 css 来打破 html 语法的嵌套规则的解决方案。我提供的示例在遵守这些规则的同时实现了您真正想要的目标。
The fact that W3C defines a standard without creating an implementation is what leads to different interpretations, regardless of which browser does it 'right or wrong'.
The proper way to do what you want in all browsers is something like:
or
No need for ziindexes with ridiculous numbers - that leads to confusion.
Basically, when you are using z-index, you should position all sibling elements and the parent element, and you should z-index all siblings for sake of clarity. This makes for far more headaches.
The way you were trying to do this in your question violates the basic rules of layering in the same way that this does, for example:
You are looking for a solution that uses css to break the nesting rules of html syntax. The examples I provide accomplish what you really want while obeying those rules.
在 8 之前的 IE 版本中存在一个已知的 z-index 错误,其中定位的元素会生成新的堆叠上下文,导致 z-index 无法正常工作。 此示例说明了该问题。
您的页面在 IE8 中显示正确吗?
There's a known z-index bug in version of IE prior to 8 where positioned elements generate a new stacking context causing z-index to function incorrectly. This example illustrates the problem.
Does your page appear correctly in IE8?
不确定我是否很清楚你想要什么,但是通过重新排列你的 div,可以在 IE7 中复制你的代码以及它在 Firefox 3 中的呈现方式,如下所示
Not sure if I'm quite clear on what you want however taking your code and how it renders in Firefox 3 can be replicated in IE7 by rearranging your divs as followed