Page 164 - css揭秘
P. 164

实际上,在最早期的图形界面中,为按钮生成按下或浮起效果就用到了
                    类似的原理:出现在底部的浅色投影(或者出现在顶部的暗色投影)会让人
                    产生物体是凹进平面内的错觉。同理,出现在底部的暗色投影(或者出现在
                    顶部的浅色投影)会让人产生物体从平面上凸起的错觉。这种方法之所以奏
                    效,是因为我们在现实世界中早已习惯了光源总是悬在头顶。在这样的环境
                    里,凸起物的下方会产生阴影,而凹陷的底部边缘则会被打亮。

                        让我们以图 5-28 中用到的两种颜色作为起点。图中文字的颜色是
                    hsl(210, 13%, 30%),而背景色是         hsl(210, 13%, 60%)。

                        background: hsl(210, 13%, 60%);
                        color: hsl(210, 13%, 30%);

                        当我们在浅色背景上使用深色文字时(比如眼前的这个例子),在底部
                    加上浅色投影通常效果最佳。到底要多浅,取决于你用的是什么颜色,以及
                                                                                         图 5-28
                    你期望最终效果有多明显,因此需要反复尝试其透明度以达到满意效果。在
                                                                                         对浅色底、深色字使用凸版印刷
                    这个例子中,我们最终敲定为 80% 不透明度的白色;当然你也可以尝试其
                                                                                         效果(上图:加效果之前,下图:
                    他数值:                                                                 加效果之后)

                        background: hsl(210, 13%, 60%);
                        color: hsl(210, 13%, 30%);
                        text-shadow: 0 1px 1px hsla(0,0%,100%,.8);

                        在图 5-28 中可以看到最终效果。在这个例子中,我们用的是像素单位,
                    而不是 em 单位。不过如果需要处理的文字字号跨度非常大,那么 em 单位可
                    能更合适。

                        text-shadow: 0 .03em .03em hsla(0,0%,100%,.8);                   图 5-29

                                                                                         当文字比背景的颜色浅时,直接
                        如果把文字和背景的颜色深度对调,样式看起来又会如何呢?在深色
                                                                                         套用上述样式是得不到凸版印刷
                    底、浅色文字的情况下(参见图 5-29),直接套用上述投影样式看起来会非                                 效果的
                    常奇怪,会让文字显得模糊。这是不是意味着我们无法在这种场景下实现凸
                    版印刷效果呢?不是,这只是表明我们应该调整方法。在这种情况下,给文
                    字顶部加深色投影是最佳方案,效果如图 5-30 所示。CSS 代码看起来是这
                    样的:

                        background: hsl(210, 13%, 40%);
                        color: hsl(210, 13%, 75%);
                        text-shadow: 0 -1px 1px black;


                     试一试 play.csssecrets.io/letterpress

                                                                                         图 5-30
                                                                                         对深色底浅色字使用凸版印刷效
                                                                                         果(上图:加效果之前,下图:
                                                                                         加效果之后)



                                                                                       27 现实中的文字效果            133







          ඀ࠡ  JOEC
   159   160   161   162   163   164   165   166   167   168   169