Page 95 - css揭秘
P. 95

使用三角形盖住元素的顶角来模拟切角效果(当网页背景是纯色时),或者
                                              使用一张或多张已经切过角的图片来作为整个元素的背景。

                    图 3-24
                    以这个网站为例,它就在设计
                    中运用到了切角效果(“Find &
                    Book”半透明区块的左下角)











                                                  这些方案显然都不够灵活、难以维护,而且增加了网页的加载时间:不
                                              仅增加了额外的 HTTP 请求,而且网页所需的文件体积也增加了。我们还有
                                              更好的方法吗?

                                              解决方案


                                                  第一种方案来自于无所不能的 CSS 渐变。假设我们只需要一个角被切
                                              掉的效果,以右下角为例。这其中最大的窍门在于充分利用渐变的一大特
                                              性:渐变可以接受一个角度(比如 45deg)作为方向,而且色标的位置信息
                                              也可以是绝对的长度值,这一点丝毫不受容器尺寸的影响。
                                                  综合以上这些想法,我们只需要一个线性渐变就可以达到目标。这个渐
                    图 3-25                    变需要把一个透明色标放在切角处,然后在相同位置设置另一个色标,并且
                    元素右下角的切角效果是由简单            把它的颜色设置为我们想要的背景色。CSS 代码如下所示(假设切角的深度
                    的 CSS 渐变实现的               是 15px):

                                                  background: #58a;
                                                  background:
                                                      linear-gradient(-45deg, transparent 15px, #58a 0);

                                                  很简单,对吧?你可以在图 3-25 中看到结果。事实上,第一行声明
                                              并不是必需的,加上它是将其作为回退机制:如果某些浏览器不支持 CSS
                     小提示
                                              渐变,那第二行声明会被丢弃,而此时我们至少还能得到一个简单的实色
                       我们为两层渐变使用了不同           背景。
                    的颜色(     #58a 和  #655)以
                    便更好地调试。在实际开发中,                现在,假设我们想要两个角被切掉的效果,以底部的两个角为例。我们
                    它们的颜色应该是相同的。              只用一层渐变是无法做到这一点的,因此要再加一层。我们最初的想法可能
                                              是这样的:

                                                  background: #58a;
                                                  background:




                   64   第 3 章 形状







          ඀ࠡ  JOEC
   90   91   92   93   94   95   96   97   98   99   100