今天来讨论一下前端的3D文字效果,如图:
字体阴影
看到这样的效果,首先想到的当然是CSS中的文字阴影来实现,首先给出HTNL代码:
1 | <div class="font-3d">CSS 3D效果</div> |
接下来就是添加样式了,大笔一挥如下:
1 | body{ |
最关键的一个样式是text-shadow
,他的签名是这样的:text-shadow: h-shadow v-shadow blur color;
,其中第一个参数h-shadow
是水平方向的偏移量,正数是向右偏移,负数是向左偏移;第二个参数v-shadow
是垂直方向偏移量,正数是向下偏移,负数是向上偏移;第三个参数blur
是模糊大小,值越大越模糊,该值可以不写,默认是0,表示不模糊;第四个参数color
是颜色,同样可以不写,默认是当前字体的颜色。
此时我们发现,单纯的阴影边界地方有菱角,缺乏立体感,具体效果如下:
多重阴影模拟
为了让效果更好,我们可以写多重阴影来模拟,阴影每次增加1点(这里是1px),这样看着就像阴影连着似得,如下:
1 | body{ |
此时的效果,就跟刚开始看到的是一样的了。你可以点击这里自己修改一下样式试试。
three.js中的3D字体
three.js是非常著名的3D库,写个3D字当然是不在话下(单纯的用这做3D字绝对是大材小用)。three.js
使用3D字体大概需要2步骤,第1步引入typeface
类型的字体,第2步把TextGeometry
文字结构对象加入到场景中。具体的可以看一下官方给出的这篇文章,这里就不再重复叙述了。