CSS3文本阴影特效全攻略

发布于:2025-07-24 ⋅ 阅读:(19) ⋅ 点赞:(0)

CSS3文本阴影效果实现

下面我将创建一个展示各种CSS3文本阴影效果的页面,包含多种样式示例和代码实现。

设计思路

  • 创建具有视觉吸引力的标题区域
  • 提供多种文本阴影效果实例
  • 显示对应的CSS代码以供参考
  • 添加交互元素让用户自定义效果

实现代码

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS3文本阴影效果大全</title>
    <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@700&family=Open+Sans:wght@400;600&display=swap" rel="stylesheet">
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: 'Open Sans', sans-serif;
            background: linear-gradient(135deg, #1a2a6c, #b21f1f, #fdbb2d);
            color: #fff;
            min-height: 100vh;
            padding: 40px 20px;
        }
        
        .container {
            max-width: 1100px;
            margin: 0 auto;
        }
        
        header {
            text-align: center;
            margin-bottom: 50px;
        }
        
        h1 {
            font-family: 'Montserrat', sans-serif;
            font-size: 3.5rem;
            margin-bottom: 15px;
            text-shadow: 
                0 0 10px rgba(255, 255, 255, 0.8),
                0 0 20px rgba(255, 215, 0, 0.7),
                0 0 30px rgba(255, 140, 0, 0.6);
            position: relative;
            display: inline-block;
        }
        
        h1::after {
            content: "";
            position: absolute;
            bottom: -10px;
            left: 50%;
            transform: translateX(-50%);
            width: 150px;
            height: 4px;
            background: linear-gradient(90deg, transparent, gold, transparent);
            border-radius: 2px;
        }
        
        .subtitle {
            font-size: 1.2rem;
            max-width: 600px;
            margin: 0 auto;
            opacity: 0.9;
            line-height: 1.6;
        }
        
        .shadow-examples {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 30px;
            margin-bottom: 50px;
        }
        
        .example {
            background: rgba(20, 20, 30, 0.7);
            border-radius: 15px;
            padding: 30px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
            display: flex;
            flex-direction: column;
        }
        
        .example:hover {
            transform: translateY(-10px);
            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
        }
        
        .example-title {
            font-size: 2.5rem;
            margin-bottom: 20px;
            text-align: center;
            min-height: 100px;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        
        .example-code {
            background: rgba(15, 15, 25, 0.8);
            border-radius: 8px;
            padding: 15px;
            font-family: monospace;
            font-size: 0.95rem;
            line-height: 1.5;
            flex-grow: 1;
            overflow-x: auto;
        }
        
        .example-desc {
            margin-top: 15px;
            font-size: 0.95rem;
            opacity: 0.8;
        }
        
        .shadow-customizer {
            background: rgba(20, 20, 30, 0.7);
            border-radius: 15px;
            padding: 30px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
            margin-bottom: 50px;
        }
        
        .customizer-title {
            text-align: center;
            font-size: 2rem;
            margin-bottom: 30px;
            text-shadow: 0 2px 10px rgba(0, 200, 255, 0.7);
        }
        
        .controls {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 20px;
            margin-bottom: 30px;
        }
        
        .control-group {
            display: flex;
            flex-direction: column;
        }
        
        label {
            margin-bottom: 8px;
            font-weight: 600;
        }
        
        input[type="range"] {
            width: 100%;
        }
        
        .color-picker {
            display: flex;
            gap: 10px;
            align-items: center;
        }
        
        input[type="color"] {
            width: 40px;
            height: 40px;
            border: none;
            border-radius: 5px;
            cursor: pointer;
        }
        
        .preview {
            text-align: center;
            padding: 40px;
            margin: 20px 0;
            background: rgba(0, 0, 0, 0.3);
            border-radius: 10px;
            font-size: 3rem;
            font-weight: bold;
        }
        
        .code-output {
            background: rgba(15, 15, 25, 0.8);
            border-radius: 8px;
            padding: 20px;
            font-family: monospace;
            font-size: 1.1rem;
            text-align: center;
        }
        
        footer {
            text-align: center;
            padding: 20px;
            font-size: 0.9rem;
            opacity: 0.8;
        }
        
        @media (max-width: 768px) {
            h1 {
                font-size: 2.5rem;
            }
            
            .preview {
                font-size: 2rem;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <header>
            <h1>CSS3 文本阴影效果</h1>
            <p class="subtitle">探索各种引人注目的文本阴影技术,学习如何实现这些效果并创建您自己的自定义样式。</p>
        </header>
        
        <section class="shadow-examples">
            <div class="example">
                <div class="example-title" style="text-shadow: 3px 3px 0px #ff6b6b;">简单投影</div>
                <div class="example-code">text-shadow: 3px 3px 0px #ff6b6b;</div>
                <p class="example-desc">基本投影效果,向右下角偏移,无模糊效果。</p>
            </div>
            
            <div class="example">
                <div class="example-title" style="text-shadow: 0 0 10px #00eeff, 0 0 20px #00b3ff;">霓虹灯效果</div>
                <div class="example-code">text-shadow: 0 0 10px #00eeff, 0 0 20px #00b3ff;</div>
                <p class="example-desc">多层阴影创造发光效果,常用于霓虹灯风格设计。</p>
            </div>
            
            <div class="example">
                <div class="example-title" style="text-shadow: -1px -1px 0 white, 1px -1px 0 white, -1px 1px 0 white, 1px 1px 0 white; color: #2c3e50;">文字描边</div>
                <div class="example-code">text-shadow: -1px -1px 0 white, <br>1px -1px 0 white, <br>-1px 1px 0 white, <br>1px 1px 0 white;</div>
                <p class="example-desc">使用四个阴影围绕文字创建描边效果。</p>
            </div>
            
            <div class="example">
                <div class="example-title" style="text-shadow: 2px 2px 4px rgba(0,0,0,0.5), 4px 4px 6px rgba(0,0,0,0.3), 6px 6px 8px rgba(0,0,0,0.15);">3D立体效果</div>
                <div class="example-code">text-shadow: 2px 2px 4px rgba(0,0,0,0.5),<br>4px 4px 6px rgba(0,0,0,0.3),<br>6px 6px 8px rgba(0,0,0,0.15);</div>
                <p class="example-desc">多层阴影营造出立体感和深度。</p>
            </div>
            
            <div class="example">
                <div class="example-title" style="text-shadow: 0 14px 10px rgba(0,0,0,0.15), 0 24px 2px rgba(0,0,0,0.1), 0 34px 30px rgba(0,0,0,0.1);">长投影</div>
                <div class="example-code">text-shadow: 0 14px 10px rgba(0,0,0,0.15),<br>0 24px 2px rgba(0,0,0,0.1),<br>0 34px 30px rgba(0,0,0,0.1);</div>
                <p class="example-desc">柔和的垂直投影,创造漂浮文字效果。</p>
            </div>
            
            <div class="example">
                <div class="example-title" style="text-shadow: 5px 5px 0px #ee5253, 10px 10px 0px #341f97; color: #ff9ff3;">多彩层叠</div>
                <div class="example-code">text-shadow: 5px 5px 0px #ee5253, <br>10px 10px 0px #341f97;</div>
                <p class="example-desc">多层不同颜色的阴影创建有趣的视觉效果。</p>
            </div>
        </section>
        
        <section class="shadow-customizer">
            <h2 class="customizer-title">自定义文本阴影</h2>
            
            <div class="controls">
                <div class="control-group">
                    <label for="h-offset">水平偏移 (px)</label>
                    <input type="range" id="h-offset" min="-20" max="20" value="5">
                </div>
                
                <div class="control-group">
                    <label for="v-offset">垂直偏移 (px)</label>
                    <input type="range" id="v-offset" min="-20" max="20" value="5">
                </div>
                
                <div class="control-group">
                    <label for="blur">模糊半径 (px)</label>
                    <input type="range" id="blur" min="0" max="20" value="3">
                </div>
                
                <div class="control-group">
                    <label for="color">阴影颜色</label>
                    <div class="color-picker">
                        <input type="color" id="color" value="#ff6b6b">
                        <span id="color-value">#ff6b6b</span>
                    </div>
                </div>
            </div>
            
            <div class="preview" id="custom-preview">自定义文本阴影</div>
            
            <div class="code-output">
                text-shadow: <span id="code-output">5px 5px 3px #ff6b6b</span>;
            </div>
        </section>
        
        <footer>
            <p>CSS3 文本阴影效果展示 | 使用 text-shadow 属性创建视觉吸引力</p>
            <p>text-shadow 语法:text-shadow: h-shadow v-shadow blur-radius color;</p>
        </footer>
    </div>
    
    <script>
        // 获取DOM元素
        const hOffset = document.getElementById('h-offset');
        const vOffset = document.getElementById('v-offset');
        const blur = document.getElementById('blur');
        const color = document.getElementById('color');
        const colorValue = document.getElementById('color-value');
        const customPreview = document.getElementById('custom-preview');
        const codeOutput = document.getElementById('code-output');
        
        // 更新阴影颜色值显示
        color.addEventListener('input', function() {
            colorValue.textContent = this.value;
            updateShadow();
        });
        
        // 添加事件监听器
        [hOffset, vOffset, blur].forEach(input => {
            input.addEventListener('input', updateShadow);
        });
        
        // 更新阴影效果
        function updateShadow() {
            const h = hOffset.value + 'px';
            const v = vOffset.value + 'px';
            const b = blur.value + 'px';
            const c = color.value;
            
            const shadowValue = `${h} ${v} ${b} ${c}`;
            customPreview.style.textShadow = shadowValue;
            codeOutput.textContent = shadowValue;
        }
        
        // 初始化
        updateShadow();
    </script>
</body>
</html>

功能说明

这个页面展示了多种CSS3文本阴影效果,包括:

  1. 基本效果展示区:提供了6种不同的文本阴影示例

    • 简单投影
    • 霓虹灯效果
    • 文字描边
    • 3D立体效果
    • 长投影效果
    • 多彩层叠效果
  2. 自定义工具:用户可以实时调整以下参数:

    • 水平偏移(左右移动阴影)
    • 垂直偏移(上下移动阴影)
    • 模糊半径(控制阴影的模糊程度)
    • 阴影颜色(使用颜色选择器)
  3. 代码输出:实时显示当前阴影效果的CSS代码

设计特点

  • 使用渐变背景创建现代化视觉效果
  • 卡片式布局确保在各种设备上都能良好显示
  • 悬特效提升交互体验
  • 响应式设计适应不同屏幕尺寸
  • 实时预览功能便于学习和测试

这个页面既展示了CSS3的强大文本阴影功能,也提供了实用的交互工具让用户可以立即体验各种效果。


网站公告

今日签到

点亮在社区的每一天
去签到