如何利用CSS3制作3D文字效果

来源:互联网 发布:python构建搜索引擎 编辑:程序博客网 时间:2024/05/17 07:55

下面这篇教程是教你如何用CSS3来制作3D效果的文字,文章翻译自3D CSS Shadow Text Tutorial。

这个简单的CSS文本阴影教程将一步步教你如何通过堆叠多层阴影来创建3D文字,然后进一步利用CSS3的transform和transition属性来实现鼠标移过字体放大的效果。请注意,这个3D文字效果是用纯CSS的,没有用Javascript,并且需要用支持CSS3的浏览器才能看出效果,如firefox、chrome、safari和opera。

CSS文字阴影是如何实现的

为了实现3D的文字效果,我们将会利用CSS3的text-shadow属性,text-shadow的工作原理如下:

1
2
3
4
.example-class
{
    text-shadow: [X offset] [Y offset] [Blur size] [Colour];
}
译者注:X表示x轴上的位移,可为负值;Y表示y轴上的位移,可为负值;Blur表示投影的宽度,不能为负值;Color为投影的颜色。

堆叠多层CSS投影

虽然我们没有必要堆叠多层投影,但通过堆叠多层投影会有更好的3D效果

开始创建3D文字

你可能会选择比文字更深的颜色来作为投影的颜色,所以这个例子中我就用白色的文字,用深一点的灰色作为投影颜色,这个例子中我将H2的文字渲染3D效果,css代码如下:

1
2
3
4
5
6
7
8
9
10
h2
{
    text-shadow:
    1px1px 0 #CCC,
    2px2px 0 #CCC, /* end of 2 level deep grey shadow */
    3px3px 0 #444,
    4px4px 0 #444,
    5px5px 0 #444,
    6px6px 0 #444; /* end of 4 level deep dark shadow */
}
效果如下:

好了,到这里你已经创建了基本的3D文字,然而,让我们进一步来实现鼠标滑过的文字放大效果,并用css的transision属性实现圆滑的淡入淡出效果。

首先用transform属性实现滑过字体放大

1
2
3
4
5
6
7
h2:hover
{
    /* CSS3 Transform Effect */
    -webkit-transform: scale(1.2);    /* Safari & Chrome */
    -moz-transform: scale(1.2);       /* Firefox */
    -o-transform: scale(1.2);         /* Opera */
}
效果如下:

然后利用transition属性实现淡入淡出效果

1
2
3
4
5
6
7
h2
{
    /* CSS3 Transition Effect */
    -webkit-transition:all 0.12s ease-out;    /* Safari & Chrome */
    -moz-transition:all 0.12s ease-out;       /* Firefox */
    -o-transition:all 0.12s ease-out;     /* Opera */
}
到此,我们就用CSS3实现了3D效果的文字,并且在鼠标滑过是让字体放大,且有淡入淡出的效果,这一切是用纯CSS实现的哦。

下面是这个例子的DEMO,一起看看

3D CSS TEXT

WITH ‘ZOOM’