【开发小技巧】023—如何使用HTML和CSS实现3D文字效果

672次阅读  |  发布于4年以前

3D文字效果是网页设计领域中最常用的文字效果之一。作为设计师或前端开发人员,应该知道如何创建3D文字效果。

今天,我们将研究一种最简单易用的方法来实现3D文字外观。

方法: 3D文本动画效果是通过text-shadow属性设计的。应用在多个文本阴影上,主要是因为使用了3D效果,外观看起来好像我们仅应用单个文本阴影,对于单词中存在的所有字母来说,它都是相同的。

但是对于3D效果,我们希望每个字母和每个角度(基本上是X和Y坐标以及模糊半径)的阴影厚度都不同。

现在让我们一起来看一下上述方法的实现。

HTML代码:在本节中,我们将标记与要对其应用3D效果的单词一起使用。

<!DOCTYPE html> 
<html lang="en">

<head> 
    <meta charset="UTF-8" /> 
    <meta name="viewport" content= 
        "width=device-width, initial-scale=1.0" /> 
    <title>3D Text Effect</title> 
</head>

<body> 
    <h1>GeeksforGeeks</h1> 
</body>

</html>

CSS代码:

提示:我们必须选择将效果仅在鼠标悬停时可见,但是如果您希望该效果始终可见,请删除悬停选择器。

<style> 
    body { 
        background: green; 
    }

    h1 { 
        margin: 300px auto; 
        text-align: center; 
        color: white; 
        font-size: 8em; 
        transition: 0.5s; 
        font-family: Arial, Helvetica, sans-serif; 
    }

    h1:hover { 
        text-shadow: 0 1px 0 #ccc, 0 2px 0 #ccc, 
                     0 3px 0 #ccc, 0 4px 0 #ccc, 
                     0 5px 0 #ccc, 0 6px 0 #ccc, 
                     0 7px 0 #ccc, 0 8px 0 #ccc, 
                     0 9px 0 #ccc, 0 10px 0 #ccc, 
                     0 11px 0 #ccc, 0 12px 0 #ccc, 
                     0 20px 30px rgba(0, 0, 0, 0.5); 
    } 
</style>

完整代码:在这部分中,我们将结合以上两个部分,以在鼠标悬停时创建3D文本动画效果。

<!DOCTYPE html> 
<html lang="en">

<head> 
    <meta charset="UTF-8" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
    <title>3D Text Effect</title> 
    <style> 
        body { 
            background: green; 
        }

        h1 { 
            margin: 300px auto; 
            text-align: center; 
            color: white; 
            font-size: 8em; 
            transition: 0.5s; 
            font-family: Arial, Helvetica, sans-serif; 
        }

        h1:hover { 
            text-shadow: 0 1px 0 #ccc, 0 2px 0 #ccc, 
                0 3px 0 #ccc, 0 4px 0 #ccc, 
                0 5px 0 #ccc, 0 6px 0 #ccc, 
                0 7px 0 #ccc, 0 8px 0 #ccc, 
                0 9px 0 #ccc, 0 10px 0 #ccc, 
                0 11px 0 #ccc, 0 12px 0 #ccc, 
                0 20px 30px rgba(0, 0, 0, 0.5); 
        } 
</style> 
</head> 
<body> 
    <h1>GeeksforGeeks</h1> 
</body> 
</html>

最终效果如下:

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8