0

我有一个透明的 .png 交叉线图像。如果应用了drop-shadowCSS filter,则只有线条会产生阴影,而不是边界矩形(它与 不同box-shadow)。

当我同时应用drop-shadowfilter 和transform: rotate时,Chrome 和 FF 先绘制阴影,然后旋转生成的图像(与阴影合并)。我希望旋转的图像改为投影。(好像有一个静态光源,当图像旋转时)。

纯CSS有可能吗?

我看到的唯一解决方案是每次图像旋转时对阴影参数进行 JS 三角计算。

问候,

4

1 回答 1

4

我很确定这个问题之前已经回答过,但找不到,所以这里是:

在基本元素上设置过滤器,并在内部元素中应用变换

.base {
  -webkit-filter: drop-shadow(10px 10px 0px red);
  filter: drop-shadow(10px 10px 0px red);
}

.element {
   animation: rotate 6s linear infinite;
  border: solid 3px green;
  border-top-left-radius: 40px;
  width: 200px;
  height: 200px;
  margin: 20px;
 }

@keyframes rotate {
  from {transform: rotate(0deg);}
  to {transform: rotate(360deg);}
}
    
<div class="base">
  <div class="element"></div>
</div>

于 2016-04-01T17:25:50.757 回答