怎样使用纯CSS3创建一个简单的五角星图形

html-css017

怎样使用纯CSS3创建一个简单的五角星图形,第1张

我们可以使用SVG、Canvas、CSS3或者背景图片来实现五角星图案及其悬停效果。

CSS3引入的伪元素和变换特性使得实现五角星图形非常简单,并且可以结合渐变实现更为漂亮的效果。

因此使用图片实现五角星已经毫无必要(图片占用额外的请求,且数据量大。除非要支持低版本的桌面IE浏览器)。

首先我们创建一个三角形,这通常是使用带大尺寸边线而零内容尺寸的元素来实现,代码示范:

.tri { width: 0height: 0border-left: 15px solid transparentborder-right: 15px solid transparentborder-bottom: 30px solid red}

第二步,我们使用伪元素:after和:before来克隆2个同样大小的三角形。

.tri:after,.tri:before { width: 0height: 0border-left: 15px solid transparentborder-right: 15px solid transparentborder-bottom: 30px solid red}

然后,我们在上述2个伪元素上分别应用不同的旋转变换:

.tri:before { transform: rotate(70deg)}.tri:after { transform: rotate(-70deg)}

这样我们就实现了一个五角星图形(图标)。我们可以用类似的方法实现更多的几何形状。

复制代码代码如下:

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

堆叠多层CSS投影

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

开始创建3D文字

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

复制代码代码如下:h2{text-shadow:

1px 1px 0 #CCC,

2px 2px 0 #CCC, /* end of 2 level deep grey shadow */

3px 3px 0 #444,

4px 4px 0 #444,

5px 5px 0 #444,

6px 6px 0 #444/* end of 4 level deep dark shadow */}效果如下:好了,到这里你已经创建了基本的3D文字,然而,让我们进一步来实现鼠标滑过的文字放大效果,并用css的transision属性实现圆滑的淡入淡出效果。

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

复制代码代码如下: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属性实现淡入淡出效果

复制代码代码如下: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实现的哦。