【发布时间】:2018-03-20 10:09:16
【问题描述】:
我正在尝试将backdrop filter 添加到位于另一个 SVG <rect> 之上的 SVG <rect>。
但是,CSS 属性 backdrop-filter: blur(10px) 和 -webkit-backdrop-filter: blur(10px) 似乎对 SVG 元素没有任何影响。当我对两个 <div> 执行相同操作时,它可以工作。
两个<rect>怎样才能达到同样的效果呢?
body, html {
margin: 0;
}
.outerrect {
position: absolute;
left: 0px;
top: 120px;
}
.innerrect {
position: absolute;
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
}
.outerdiv {
position: absolute;
left: 0px;
top: 120px;
width: 200px;
height: 100px;
background-color: red;
}
.innerdiv {
position: absolute;
left: 140px;
top: 20px;
width: 120px;
height: 60px;
border: 1px solid;
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
}
<svg>
<rect class="outerrect" fill="red" x="0" y="0" width="200" height="100"></rect>
<rect class="innerrect" x="140" y="20" width="120" height="60"></rect>
</svg>
<div class="outerdiv">
<div class="innerdiv"></div>
</div>
【问题讨论】:
-
来自您引用的 MDN 页面:
Applies to: all elements; In SVG, it applies to container elements excluding the <defs> element and all graphics elements -
所以换句话说就是无法达到我想要的吗?还是我必须使用组并将其应用于它们?
-
与小组一起玩可能是个好主意
标签: css svg blur css-filters