CSS阴影详解

作者:神采飞扬 来源:前端观察 时间:2009-12-04 18:31:00 

设计师常常使用一些独特的字体效果和页面效果,阴影是其中一个,它可以让页面中的文字和元素具有立体的效果,从而被突出出来。比如对于文字阴影,传统的方法可能需要将文字切出来,直接使用图片,如果考虑SEO和网站性能,还可能会使用CSS Sprites等技术将图片整合:

h2{ background:url(sprites.png) no-repeat 0 0; font-size:0; text-indent:-9999em;...}
h2#title1{background-position:0 -30px;}
h2#title2{background-position:0 -60px;}
.... 

这是很棘手的事情,拼合图片会花掉你的大量时间,而且为了实现更好视觉效果,你可能还要使用高质量的32位png图片,这又要让你面对该死的IE 6的png透明问题!

事实上,对于文字的阴影效果,我们完全可以用CSS来实现!

可以查看查看demo先。

Text-shadow

text-shadow可以让我们实现完美的文字阴影效果。基本写法:

text-shadow:[颜色 x轴 y轴 模糊半径],[颜色 x轴 y轴 模糊半径]...或者
text-shadow:[x轴 y轴 模糊半径 颜色],[x轴 y轴 模糊半径 颜色]...

这里的颜色就是阴影的颜色,你可以将颜色写在前面,也可以写在最后。x轴和y轴分别是其阴影的偏移位置,模糊半径可以理解为阴影长度。而且现在大部分浏览器都支持多层阴影,你可以用逗号分开多组设置(当然也可以只是用单个设置)。

示例:

h1{color:#000; background:#333; font:bold 24px/2 "微软雅黑",Arial; 
text-indent:2em;
text-shadow:black 2px 2px 2px; }

效果如下图

该属性目前被除IE之外的

filter: Shadow(Color='black', Direction='135', Strength='2')

你可能已经注意到,使用shadow滤镜只能定义角度 direction,而不能定义xy轴,z轴也被换成了strength。注意,使用该滤镜的时候,不能够设置背景颜色,否则滤镜将无效!另外如果你的数学不是很好,不太懂三角函数的算法,你可以使用IE的另外一个滤镜:dropshadow:

filter: dropshadow(OffX=2, OffY=2, Color='black', Positive='true');

好吧,IE总是会拖我们的后腿,不过值得一提的是,IE的这两个滤镜是支持多层阴影的!比如,可以这样写:

filter: dropshadow(OffX=2, OffY=2, Color='red', Positive='true')
dropshadow(OffX=2, OffY=2, Color='yelow', Positive='true')
dropshadow(OffX=2, OffY=2, Color='blue', Positive='true');

欲了解更多关于IE的这两个滤镜,请查看:ShadowDropshadow

让我们看一个多层阴影的例子(这里无视了IE):

h1{font:bold 32px/2 Verdana, Geneva, sans-serif; color:#f39;
text-shadow:1px 1px 2px rgba(0,0,0,.8), 0 0 1em rgba(255, 0, 255, 0.5), 0 0 0.2em rgba(0, 0, 255, 0.9);}

效果如图:

这里我们使用到了rgba色彩,它是一种在CSS中同时声明颜色及其透明度的一种方法,且被大多数A级浏览器支持的色彩属性(除了IE),了解更多请查看:《RGBa色彩的浏览器支持》——同时我们推荐对于纯色半透明的情况使用这种简单的写法。

标签:阴影,css,文字阴影,图片阴影
0
投稿

猜你喜欢

  • Python类的基础入门知识

    2021-07-09 04:07:25
  • Dreamweaver定义本地站点

    2010-07-02 16:27:00
  • oracle 多个字符替换实现

    2009-10-23 17:50:00
  • python cookie反爬处理的实现

    2021-10-16 23:33:17
  • SQL Server误区30日谈 第11天 镜像在检测到故障后瞬间就能故障转移

    2024-01-22 13:13:00
  • python生成指定长度的随机数密码

    2021-01-24 23:53:17
  • YUI Compressor快速使用指南

    2011-06-27 20:07:30
  • 详解Python验证码识别

    2023-11-12 23:46:40
  • Golang压缩Jpeg图片和PNG图片的操作

    2024-05-09 14:55:43
  • mysql存储过程之创建(CREATE PROCEDURE)和调用(CALL)及变量创建(DECLARE)和赋值(SET)操作方法

    2024-01-19 22:48:06
  • python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)

    2021-10-03 08:39:35
  • matplotlib制作雷达图报错ValueError的实现

    2022-03-06 07:15:38
  • python模块之sys模块和序列化模块(实例讲解)

    2022-01-08 07:42:16
  • Linux下彻底删除Mysql 8.0服务的方法

    2024-01-14 06:38:04
  • Django和Ueditor自定义存储上传文件的文件名

    2021-02-26 02:43:17
  • 零基础写python爬虫之打包生成exe文件

    2022-08-31 23:10:38
  • python中的插入排序的简单用法

    2023-09-30 07:57:51
  • 网页上的广告条设计思考

    2008-06-29 14:16:00
  • 在线Ajax载入动画生成工具 - Loadinfo

    2008-02-18 13:34:00
  • MySQL数据误删除的快速解决方法(MySQL闪回工具)

    2024-01-14 08:04:02
  • asp之家 网络编程 m.aspxhome.com