使用文本阴影打造时尚文本

这篇文章来自 Frederic Wenzel,他在 Mozilla 的 Web 开发团队工作。

CSS 属性 text-shadow 的作用顾名思义:它允许您创建文本的略微模糊、略微偏移的副本,最终看起来有点像现实世界中的阴影。

text-shadow 属性最初是在 CSS2 中引入的,但由于当时定义不当,其支持在 CSS2.1 中再次被放弃。该功能在 CSS3 中重新引入,现在已 集成到 Firefox 3.5 中

工作原理

根据 CSS3 规范,text-shadow 属性可以具有以下值

none | [, ] * ,

<shadow> 定义为

[ ?   ? |   ? ? ], 

其中前两个长度分别表示水平和垂直偏移量,第三个是可选的模糊半径。最好的描述方法是举例说明。

例如,我们可以这样创建一个简单的阴影

text-shadow: 2px 2px 3px #000;
一个简单的阴影

(所有示例都首先是一个实时示例,然后是工作功能的图片——因此您可以将浏览器的行为与 Firefox 3.5 在 OSX 上的行为进行比较)

如果您是硬边界的粉丝,您可以完全不使用模糊半径

text-shadow: 2px 2px 0 #888;
我不喜欢模糊

发光文本和多个阴影

但是由于该功能的灵活性,乐趣并没有止步于此。通过改变文本偏移量、模糊半径,当然还有颜色,您可以实现各种效果,例如神秘的光晕

 text-shadow: 1px 1px 5px #fff; 
发光文本

或简单的模糊模糊

text-shadow: 0px 0px 5px #000;
模糊文本

最后,您可以添加“多个阴影”,允许您创建非常“热”的效果(由 http://www.css3.info/preview/text-shadow/ css3.info 提供)

text-shadow: 0 0 4px white, 0 -5px 4px #FFFF33, 2px -10px 6px #FFDD33, -2px -15px 11px #FF8800, 2px -25px 18px #FF2200
多个阴影很热

理论上,您可以在 Firefox 3.5 中同时应用的 text-shadow 数量是无限的,尽管您可能希望坚持使用合理的数量。与所有 CSS 属性一样,您可以使用 JavaScript 动态修改 text-shadow

使用 JavaScript 制作动画阴影


开始/停止动画

性能、可访问性和跨浏览器兼容性

在网络上使用图片(甚至更糟糕的是 Flash)来创建文本阴影的日子已经屈指可数,这有两个原因。

首先,使用文本而不是图片有明显的优势。不使用图片可以节省带宽和 HTTP 连接开销。可访问性,对于使用屏幕阅读器和搜索引擎的人来说,都得到了极大的改善。并且页面缩放效果会更好,因为文本可以缩放,而不是使用像素插值来放大图像。

其次,此功能在很大程度上与跨浏览器兼容。

  • Opera 从 9.5 版本开始支持 text-shadow。根据 Mozilla 开发者中心 的说法,Opera 9.x 支持在同一元素上最多 6 个阴影。
  • Safari 从 1.1 版本(以及其他基于 WebKit 的浏览器)开始就拥有此功能。
  • Internet Explorer 不支持 text-shadow 属性,但该功能会优雅地降级为普通文本。此外,如果您想在 MSIE 中模拟一些 text-shadow 功能,可以使用 Microsoft 专有的 “Shadow” 和 “DropShadow” 过滤器
  • 与 MSIE 类似,当其他旧版浏览器不支持该功能(包括 Firefox 3 及更早版本)时,它们只会显示没有阴影的普通文本。

值得一提的是“绘制顺序”:虽然 Opera 9.x 遵循 CSS2 绘制顺序(即,第一个指定的阴影绘制在底部),但 Firefox 3.5 遵循 CSS3 绘制顺序(第一个指定的阴影在顶部)。绘制多个阴影时请记住这一点。

结论

text-shadow 是一款微妙但功能强大的 CSS 功能,现在 Firefox 3.5 已支持它,因此在可预见的未来可能会在网络上得到广泛采用。由于它在旧版浏览器中可以优雅地降级,因此开发人员可以安全地使用它,并且随着时间的推移,越来越多的用户会看到它。

最后,一些明智之言:像任何视觉效果一样,使用它就像在汤里放盐一样——适量使用,而不是用桶装。如果全世界的 Web 开发人员过度使用它,text-shadow 可能会走向一个短暂而痛苦的死亡。如果我们让用户像 排版极客看到“Papyrus”一样对文本阴影感到畏缩,那将是一件令人悲伤的事情,因此需要将此功能深深地埋藏在我们的宝箱中。

话虽如此:赶快试试吧!

更多资源

文档

示例

关于 Christopher Blizzard

一次发布,让网络更美好。

更多 Christopher Blizzard 的文章…


24 条评论

  1. […] 我的 Web 开发朋友会喜欢这个:使用文本阴影打造时尚文本:https://hacks.mozilla.ac.cn/2009/06/text-shadow/ […]

    2009 年 6 月 10 日 06:43

  2. […] https://hacks.mozilla.ac.cn/2009/06/text-shadow/ 通过 @nitot […]

    2009 年 6 月 10 日 06:52

  3. […] 使用 CSS text-shadow 属性创建时尚文本 我为 hacks.mozilla.org 博客撰写了一篇文章的交叉发布。它展示了 Web 开发人员可以使用的一些有趣的功能 […]

    2009 年 6 月 10 日 07:26

  4. […] 原文地址:stylish text with text-shadow […]

    2009 年 6 月 10 日 08:00

  5. Francisco Costa

    很棒的技巧!

    2009 年 6 月 10 日 10:00

  6. Shahbaz Javeed

    看起来最新的 Opera 10 测试版使用了 CSS3 阴影渲染顺序。火焰文字看起来类似于参考渲染。

    2009 年 6 月 10 日 11:23

  7. Garbled

    哦,天哪,你非得提到 Papyrus!

    2009 年 6 月 10 日 12:06

  8. Frederic Wenzel

    Shahbaz:感谢你的提醒!我很高兴听到这个消息。它会让开发人员的生活变得更容易!

    Garbled:哦,是的,你知道我不得不这样做 :)

    2009 年 6 月 11 日 02:12

  9. Neil Rashbrook

    出于某种原因,对我来说,发光文本效果不太明显…

    2009 年 6 月 11 日 03:12

  10. […] 使用文本阴影打造时尚文本 […]

    2009 年 6 月 11 日 05:55

  11. […] 使用文本阴影打造时尚文本 […]

    2009 年 6 月 11 日 07:44

  12. John allsopp

    对于想要玩转文本阴影和其他在 Firefox 3.5 中支持的酷炫 CSS3 功能的用户,请尝试

    http://westciv.com/tools/shadows/
    http://westciv.com/tools/boxshadows/
    http://westciv.com/tools/transforms/

    john

    2009 年 6 月 11 日 15:14

  13. Frederic Wenzel

    John:感谢发布这些链接,能够实时看到效果变化,这太棒了!

    2009 年 6 月 12 日 01:44

  14. […] 分别。第三个长度是模糊半径(将其与 text-shadow 属性中的模糊半径进行比较)。最后,第四个长度是扩展半径,允许阴影增长(正值)或 […]

    2009 年 6 月 12 日 05:00

  15. Florian

    该语句称其可以优雅地降级是不完全正确的,Opera Mini 中的一些示例看起来非常糟糕,它似乎没有实现模糊半径(当然,绝对像素值对于小型手机字体来说也太大了)。

    2009 年 6 月 12 日 12:01

  16. […] Johnson 制作了另一个有趣的演示。他使用一些 JavaScript 和新的 text-shadow 属性来构建聚光灯效果。它嵌入在下方。如果您无法查看它,请点击 […]

    2009 年 6 月 25 日 21:55

  17. […] 对于那些对未来某个时间段内网络上所有可能出现的功能感兴趣的人。您需要 Firefox 3.5(有些可能也适用于 Safari 4)阴影:https://hacks.mozilla.ac.cn/2009/06/text-shadow/ […]

    2009 年 6 月 26 日 00:37

  18. […] https://hacks.mozilla.ac.cn/2009/06/text-shadow/ […]

    2009 年 7 月 1 日 03:01

  19. […] Johnson 制作了另一个有趣的演示。他使用一些 JavaScript 和新的 text-shadow 属性来构建聚光灯效果。它嵌入在下方。如果您无法查看它,请点击 […]

    2009 年 7 月 1 日 11:35

  20. […] 原文地址:stylish text with text-shadow […]

    2009 年 7 月 8 日 22:25

  21. […] 使用文本阴影打造时尚文本 […]

    2009 年 12 月 4 日 09:40

  22. CSS 设计博客

    如果您想实现像所有苹果页面那样的文本,则文本阴影是最有趣的属性之一。

    2010 年 12 月 10 日 02:09

  23. […] 我提到的那些中,我还想强调 text-shadow 和 […]

    2011 年 1 月 25 日 15:53

  24. zavera

    text-shadow 的技巧很棒,我认为 CSS3 使设计人员的工作更容易,并且 MSIE 9 和所有其他最新浏览器都完全支持这些文本效果!

    2013 年 1 月 12 日 00:33

本文评论已关闭。