文本阴影 (text-shadow)

学习

文本阴影 (text-shadow)

2026-02-23/0/ 编辑


文本阴影 (text-shadow)

一、text-shadow 概述

text-shadow 用来为文字添加阴影效果,如果要给文字添加多个阴影,多个阴影之间用 ,(逗号)隔开。

当阴影个数 > 1 时,阴影应用的顺序为从前到后,第一个指定的阴影在最顶部显示。

基本语法

/*
  x偏移和 Y偏移,值可以为正负整数
  模糊半径 为 0 或大于 0 的整数
*/
text-shadow: x偏移 Y偏移 模糊半径 颜色;

二、基础案例

案例演示

<style>
  .box {
    width: 100px;
    height: 100px;
    margin: 50px auto;
    font-size: 100px;
    /* 红色阴影 蓝色阴影 */
    text-shadow: 0px 0px 10px rgb(251, 9, 9),
                50px 10px 10px blue;
  }
</style>
<body>
  <div class="box">我</div>
</body>

三、常见效果

效果1: 简单阴影

/* 向右下偏移的阴影 */
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);

效果2: 发光效果

/* 四周发光 */
text-shadow: 0 0 5px #fff,
            0 0 10px #fff,
            0 0 20px #ff00de;

效果3: 3D 效果

/* 多层阴影模拟 3D */
text-shadow: 1px 1px 0 #eee,
            2px 2px 0 #ddd,
            3px 3px 0 #ccc,
            4px 4px 0 #bbb;

效果4: 空心文字

/* 通过多个阴影叠加实现空心效果 */
text-shadow: 1px 1px 0 #000,
            -1px -1px 0 #000,
            1px -1px 0 #000,
            -1px 1px 0 #000;

效果5: 凹陷效果

/* 通过亮色和暗色阴影实现凹陷 */
text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.8),
            -1px -1px 0 rgba(0, 0, 0, 0.3);

效果6: 描边效果

/* 四个方向各添加阴影 */
text-shadow: -1px 0 #000,
            0 1px #000,
            1px 0 #000,
            0 -1px #000;

四、实战应用场景

场景1: 标题阴影

h1 {
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

场景2: 按钮文字阴影

.button {
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

/* 按钮 active 状态 */
.button:active {
  text-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
}

场景3: 霓虹灯效果

<style>
  .neon {
    font-size: 60px;
    color: #fff;
    text-shadow:
      0 0 5px #fff,
      0 0 10px #fff,
      0 0 20px #ff00de,
      0 0 30px #ff00de,
      0 0 40px #ff00de;
  }
</style>
<body>
  <div class="neon">霓虹灯</div>
</body>

场景4: 老报纸效果

.newspaper {
  color: #333;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
}

场景5: 火焰文字

<style>
  .fire {
    font-size: 80px;
    font-weight: bold;
    color: #fff;
    text-shadow:
      0 0 5px #ff0000,
      0 0 10px #ff0000,
      0 0 20px #ff0000,
      0 0 40px #ff6600,
      0 0 80px #ff6600;
  }
</style>
<body>
  <div class="fire">火焰</div>
</body>

场景6: 冰冻文字

<style>
  .ice {
    font-size: 80px;
    font-weight: bold;
    color: #fff;
    text-shadow:
      0 0 5px #00ccff,
      0 0 10px #00ccff,
      0 0 20px #00ccff,
      0 0 30px #00ccff,
      0 0 40px #0099ff;
  }
</style>
<body>
  <div class="ice">冰冻</div>
</body>

五、性能优化

1. 避免过多阴影

/* ❌ 不推荐: 过多阴影 */
.text {
  text-shadow:
    1px 1px 0 #000,
    2px 2px 0 #000,
    /* ...更多阴影 */
}

/* ✅ 推荐: 适度使用 */
.text {
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

2. 使用 rgba 而不是 hex

/* ✅ 推荐 */
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);

3. 注意浏览器兼容性

/* 添加前缀兼容旧浏览器 */
.text {
  -webkit-text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  -moz-text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}