是否可以在其父元素后面有一个具有 z-index 的子元素
我想知道是否可以在其父元素后面有一个具有 z-index 的子元素。
我想使用父 div 作为其内容之上的透明颜色层。
I would like to know if it possible to have a child element behind his parent element with z-index.
I would like to use the parent div as transparent color layer on top of his content.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
为什么不呢?当然可以,而且很简单:
z-index
设置为-1
;z-index
、opacity
、transforms
或其他生成合成的内容层)。
(如果父级用作透明层,请务必使用
background-image
或 rgbabackground-color
:子级继承opacity
父母的)Why not? Sure you can, and it's easy:
z-index
of child to-1
;z-index
,opacity
,transforms
or whatelse generates a compositelayer).
(if the parent is used as a transparent layer, be sure to use a
background-image
or rgbabackground-color
: children inherit theopacity
of the parent)简短的回答是肯定的;)
这里有一篇很棒的文章,描述了如何使用元素的堆叠顺序来允许 z-index 为负数,以便将元素放置在其父元素后面。
http://philipwalton.com/articles/what-没有人告诉你关于 z-index/
The short answer is Yes ;)
There is an excellent article here that describes how you can use the stacking order of elements to allow the z-index to be negative in order to place an element behind it's parent.
http://philipwalton.com/articles/what-no-one-told-you-about-z-index/
不可能,因为每个定位元素都会创建一个堆叠上下文。
说明 1、说明 2
Not possible, because each positioned element creates a stacking context.
Explanation 1, Explanation 2
你可以用另一种方式来做,并使用子元素作为覆盖层,就像这样的
HTML
CSS
You could just do it the other way and use the child as the overlay like this
HTML
CSS
虽然这不一定适用于所有浏览器(尤其是较旧的浏览器),但以下内容过去对我有用:
我实际上只是建议将此作为最后的手段,并且仍然更愿意使用除此之外的任何技术,尽管它可能是您的情况的理想选择。
While this wouldn't necessarily work in all browsers (especially older ones), the following has worked for me in the past:
I'm really only suggesting this as a last resort and would still prefer to use any technique other than this, although it might be ideal in your scenario.