Page 133 - css揭秘
P. 133

main::before {
                                                      content: '';
                                                      position: absolute;
                                                      top: 0; right: 0; bottom: 0; left: 0;
                                                      filter: blur(20px);
                                                  }

                                                  在图 4-20 中可以看到,这跟我们的期望已经相当接近了。模糊效果在
                                              中心区域看起来非常完美,但在接近边缘处会逐渐消退。这是因为模糊效果
                                              会削减实色像素所能覆盖的范围,削减的幅度正是模糊半径的长度。对伪元
                                              素应用一个        red 背景有助于我们看清事情的真相(参见图 4-21)。
                    图 4-20
                    伪元素模糊的方法基本上成功了,
                    但模糊效果在边缘处会逐渐消退,
                    削弱了毛玻璃的视觉效果





















                    图 4-21
                    添加一个     red 背景有助于解释
                    事情的真相


















                                                  为了补偿这种情况,我们需要让伪元素相对其宿主元素的尺寸再向
                                              外扩大至少 20px(即它的模糊半径)。可以通过 -20px 的外边距来达到目
                                              的,由于不同浏览器的模糊算法可能存在差异,用一个更大的绝对值(比
                                              如 -30px)会更保险一些。如图 4-22 所示,这个方法可以修复边缘模糊消



                  102   第 4 章 视觉效果







          ඀ࠡ  JOEC
   128   129   130   131   132   133   134   135   136   137   138