Page 49 - css揭秘
P. 49

1 半透明边框





                                                背景知识

                                                RGBA/HSLA 颜色




                                              难题


                                                  相信你以前肯定尝试过 CSS 中的半透明颜色,比如 rgba() 和 hsla()。
                                              半透明颜色是 2009 年发生的一场重大变革。从那以后,我们终于可以在网
                                              页设计中使用它们了,但是为了尝鲜还需要付出额外的代价。比如说,我
                                              们需要做好回退,加载 shim 脚本,甚至在 IE 下还需要用到恶心的滤镜来
                                              hack。尽管半透明颜色很受欢迎,但人们对它的使用基本上还是集中在背景
                                              上的。这里面有一些原因。
                                                     „ 一些早期尝鲜者并没有意识到这些新的颜色格式也是真正的颜色,
                                                     与   #ff0066 和    orange 一样;而是把它们当作图片,只在背景
                                                     中使用。
                                                     „ 针对背景提供回退方案要比其他属性容易得多。举例来说,如果要
                                                     为半透明背景色提供回退方案,可能只需要准备一张单像素的半透
                                                     明图片就行了。而对其他属性来说,只能回退到一个实色。
                                                     „ 在其他属性(比如边框)中使用半透明颜色并没有想像中那么容易。
                                                     我们接下来就会看到。

                                                  假设我们想给一个容器设置一层白色背景和一道半透明白色边框,body
                                              的背景会从它的半透明边框透上来。我们最开始的尝试可能是这样的:

                                                  border: 10px solid hsla(0,0%,100%,.5);
                                                  background: white;

                                                  除非你对背景和边框的工作原理有着非常好的理解,否则这个结果(参
                                              见图 2-2)可能会令你摸不着头脑。我们的边框去哪儿了啊?而且如果我们
                                              连使用半透明颜色都不能实现半透明边框,那我们还有什么办法?!











                   18   第 2 章 背景与边框







          ඀ࠡ  JOEC
   44   45   46   47   48   49   50   51   52   53   54