Page 131 - css揭秘
P. 131

图 4-17
                    对这个元素应用 blur() 滤镜反
                    而会把事情搞砸




















                                              解决方案


                                                  假设大背景的 background-attachment 值是 fixed,这种情况是有可
                                                  1①
                                              能的 ,只不过不太常见。由于我们不能直接对元素本身进行模糊处理,就
                                              对一个伪元素进行处理,然后将其定位到元素的下层,它的背景将会无缝匹
                                              配 <body> 的背景。
                                                  首先,我们添加一个伪元素,将其绝对定位,并把所有偏移量置为 0,
                                              这样就可以将它完整地覆盖到 <main> 元素之上:

                                                  main {
                                                      position: relative;
                                                      /* [其余样式] */
                                                  }

                                                  main::before {
                                                      content: '';
                                                      position: absolute;
                                                      top: 0; right: 0; bottom: 0; left: 0;
                                                      background: rgba(255,0,0,.5); /* 仅用于调试 */
                                                  }

                                                  我们还给它设置了一层半透明的                  red 背景,这样就可以看清楚我们
                                              做了什么,不然很难调试透明的(即不可见的)元素。在图 4-18 中可以看
                                              到,我们的伪元素现在就覆盖在内容元素之上。可以用 z-index:  -1; 来修
                                              正这个问题(参见图 4-19)。

                    !
                       在使用负的 z-index 来把一
                    个子元素移动到它的父元素下层
                    时,请务必小心:如果父元素的
                    上级元素有背景,则该子元素将
                    出现在它们之后。                  ①  对非固定的背景来说也是有办法实现的,只不过更加麻烦。



                  100   第 4 章 视觉效果







          ඀ࠡ  JOEC
   126   127   128   129   130   131   132   133   134   135   136