Page 123 - css揭秘
P. 123

搅乱你的代码。参数需要写死在文件内部,因此每当我们新加一种哪怕是大同
                                              小异的投影效果时,都需要多准备一个文件,这显然是难以接受的。当然,我
                                              们还可以使用 data URI(它也会省掉额外的 HTTP 请求),但这个方法仍然会带
                                              来文件体积的增长。总的来说,这个方法只是一种回退方案,因此只要我们把
                                              SVG 滤镜控制在一定数量以内,哪怕它们的效果大同小异,也是说得过去的。

                                                  另外一件需要牢记的事情就是,任何非透明的部分都会被一视同仁地
                    图 4-8
                                              打上投影,包括文本(如果背景是透明的),正如我们刚刚在图 4-7 中看到
                    text-shadow 也会从 drop-shadow()  的那样。你可能会想,是不是可以通过 text-shadow:  none; 来取消掉文
                    滤镜那里得到一层投影
                                              本上的投影呢?其实 text-shadow 跟它是完全不相干的两码事,因此这样
                                              做并不能取消文本上的 drop-shadow() 效果。此外,如果你已经用 text-
                                              shadow 在文本上加了投影效果,文本投影还会被 drop-shadow() 滤镜再加
                                              上投影,这本质上是给投影打了投影!看看下面这段示例代码(请原谅它惨
                                              不忍睹的效果,这样只是为了凸显这个怪异的问题):

                                                  color: deeppink;
                                                  border: 2px solid;
                                                  text-shadow: .1em .2em yellow;
                                                  filter: drop-shadow(.05em .05em .1em gray);

                                                  你可以在图 4-8 中看到它的渲染效果,图中的文字被同时打上了 text-
                                              shadow 和 drop-shadow()。

                                               试一试 play.csssecrets.io/drop-shadow




                                                   „ 滤镜效果                                          相关规范
                                                  http://w3.org/TR/filter-effects































                   92   第 4 章 视觉效果







          ඀ࠡ  JOEC
   118   119   120   121   122   123   124   125   126   127   128