CSS 与堆叠上下文之外的对象混合?

CSS blending with objects outside stacking context?

我正在使用 CMS 在我的页面顶部构建一个 "hero area"。它有一个背景图像、一些文本和几个按钮链接。我希望我的按钮 mix-blend-mode:multiply 带有背景图片。

我的问题是默认 CMS CSS 将按钮置于与背景图像不同的堆叠上下文中,因此它们不会混合。具体来说,问题是 .inner class 有 position:relativez-index:1。如果我覆盖 CSS 以将它们放在相同的上下文 position: static 中,那么整个部分的布局就会中断。

是否有任何变通方法可以让 button.outer 混合而不将 position:relative.inner 分开?

.outer
{
    padding: 50px;
    background: url(https://pbs.twimg.com/profile_images/562466745340817408/_nIu8KHX.jpeg); 
    background-size: 300px 300px;
    height: 200px;
    width: 200px;
}
.inner {
    position: relative; 
    z-index: 1; 
}
button { 
    background-color: rgba(18,76,150,0.87);
    color: #ffffff;
    mix-blend-mode: multiply; 
    padding: 25px;
    display:block;
}
<div class="outer">
    <div class="inner">
        <button>(Different stack) Does not blend</button>
    </div>
    <div>
        <button>(Same stack) Does blend</button>
    </div>
</div>

似乎如果您也将 mix-blend-mode: multiply; 添加到 z-index 元素的样式中,它将起作用 (see fiddle)。看似多余,但似乎有效。