Page 70 - css揭秘
P. 70

linear-gradient(45deg,
                                rgba(0,0,0,.25) 25%, transparent 0,
                                transparent 75%, rgba(0,0,0,.25) 0),
                            linear-gradient(45deg,
                                rgba(0,0,0,.25) 25%, transparent 0,
                                transparent 75%, rgba(0,0,0,.25) 0);
                        background-position: 0 0, 15px 15px;
                        background-size: 30px 30px;
                                                                                         图 2-50
                        现在我们把四层渐变简化成了两层渐变,但代码仍然跟以前一样                                     这幅图案本身就比较复杂,而且
                        1①
                    WET 。为了改变棋盘的主色调或者是方格的尺寸,我们还是需要修改四个                                   它的实现原理也相当复杂,难以
                                                                                         理解,尤其是在把四层渐变精简
                    地方。在这一点上,使用预处理器的 mixin 来简化代码可能是一个好主意。
                                                                                         为两层时。因此,我会用显眼的
                    比如,用 Sass 写的代码可能就是这样的:
                                                                                         颜色来突出某个渐变或渐变中的
                                                                                         某个色标,这通常有助于理解这
                        @mixin checkerboard($size, $base,                       SCSS     个图案是如何构成的。举例来
                                            $accent: rgba(0,0,0,.25)) {                  说,这里的第一层渐变是用
                            background: $base;                                           rebeccapurple 来展示的,不是
                            background-image:                                            半透明的黑色,而两层贴片也都
                                linear-gradient(45deg,                                   用虚线框标示出来了

                    ①  WET 的意思是 We Enjoy Typing(我们喜欢敲键盘),是 DRY 的反义词。它表示繁琐重复、
                      无法维护的代码。





                     关于未来       角向渐变

                    未来在创建棋盘图案时,我们再也不需要小心翼翼地去拼合三角形了。
                    CSS 图像(第四版) (http://w3.org/TR/css4-images)定义了一种新
                    的渐变形式,可以生成角向渐变(也称作圆锥渐变)。这种渐变的效果
                    通常看起来像是一个俯视的圆锥体,因此得名。它们的生成方式是这
                    样的:所有色标的颜色变化是由一条射线绕着端点旋转来推进的。举
                    个例子,以下渐变代码可以创建一个色轮:

                        background: conic-gradient(red, yellow, lime, aqua, blue, fuchsia, red);

                    除了色轮之外,角向渐变在很多地方都大有用武之地:放射状的光芒、金属拉丝效果,以及其他各种各样
                    的背景,其中包括(猜对了!)棋盘图案。我们只需要一个角向渐变就可以实现如图 2-44 所示的贴片了:


                        background: repeating-conic-gradient(#bbb 0, #bbb 25%, #eee 0, #eee 50%);
                        background-size: 30px 30px;
                    遗憾的是,直到我写作的此刻,还没有任何浏览器支持角向渐变;不过你可以在 leaverou.github.io/conic-
                    gradient 找到一个 polyfill。


                    测一测 play.csssecrets.io/test-conic-gradient





                                                                                          6 复杂的背景图案            39







          ඀ࠡ  JOEC
   65   66   67   68   69   70   71   72   73   74   75