css - 透明图像上的阴影和背景色

标签 css drop-shadow

设置背景会导致投影滤镜忽略自由形式并将其仅应用于图像矩形轮廓。

img {
  background: lightgreen;
  filter: drop-shadow(0 0 10px red);
}

参见 https://jsbin.com/zoseru/2/edit?css,output

最佳答案

这可以使用 SVG 过滤器来实现:

<!-- in your html -->
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" class="filterdef">
  <filter id="background" x="0" y="0" width="100%" height="100%">
    <feFlood flood-color="lightgreen" result="bg"></feFlood>
    <feComposite in2="bg" in="SourceGraphic"></feComposite>
  </filter>
</svg>

// css
img {
  filter: drop-shadow(0 0 10px red) url(#background);
}

请注意过滤器的顺序很重要。

https://jsbin.com/zoseru/3/edit?html,css,output

关于css - 透明图像上的阴影和背景色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42378129/

相关文章:

javascript - 使用 jQuery 拖动对象

twitter-bootstrap - 在不改变内容边距的情况下减少 Box-Shadow 边距

css - 在 Firefox 中应用类似 CSS3 效果的阴影

html - 使用 Chrome 鼠标悬停时 CSS 投影未完全移除

css - 如何使用 Brackets 编译 LESS 代码?

css - 漏洞 Chrome (Webkit) : Border-style dashed with border-radius

javascript - 使用水平滚动将 Div 位置从绝对位置更改为固定位置

html - 将悬停导航栏编码为仅在滚动时出现