WordPress古腾堡编辑器内Group区块样式变体z-index属性失效问题求助
古腾堡编辑器内z-index失效的原因及修复方案
我之前给WordPress区块做自定义样式时也碰到过一模一样的问题,你的情况大概率是古腾堡编辑器的层级上下文限制导致的,具体原因和解决方法如下:
核心原因
古腾堡编辑器的内部结构比前端页面复杂很多:
- 所有区块都会被包裹在
.editor-block-list__block、.editor-block-list__layout这类容器中,部分容器默认设置了position: relative甚至明确的z-index值,形成了独立的层级上下文。 - 你的伪元素
z-index: -1是相对于.wp-block-group的,但如果这个group区块的父容器已经有了自己的层级上下文,伪元素的层级就会被限制在这个上下文里,无法“钻”到编辑器其他元素的下方,看起来就像是z-index失效了。 - 另外,编辑器的区块选中态、工具栏等元素有较高的z-index,也可能会覆盖你的伪元素效果。
修复方案
只需要给你的自定义样式的group区块添加一个明确的z-index值,让伪元素的层级相对于这个区块的上下文生效,修改后的CSS代码如下:
.editor-styles-wrapper .wp-block-group.is-style-gutrs-box-shadow-raise-two-sides, .wp-block-group.is-style-gutrs-box-shadow-raise-two-sides { position: relative; z-index: 1; /* 新增这一行,建立独立的层级上下文 */ &:before, &:after { z-index: -1; position: absolute; content: ""; bottom: 15px; left: 10px; width: 50%; top: 80%; max-width: 300px; background: #777; box-shadow: 0 15px 10px #777; transform: rotate(-3deg); } &:after { transform: rotate(3deg); right: 10px; left: auto; } }
为什么前端正常?
前端页面没有编辑器那些额外的容器层级和z-index限制,你的伪元素z-index: -1会相对于页面的根上下文生效,自然能正常显示在区块下方。
内容的提问来源于stack exchange,提问作者Ron
相关产品推荐
相关产品推荐

