《CSS3 入门教程系列》前一篇文章详细介绍了 border-radius 的用法,今天这篇文章我们在一起来看看 CSS3 中实现圆角效果 text-shadow 属性的具体用法。在以前,阴影效果一般都是做成图片,现在有了 CSS3 可以直接使用 text-shadow 属性来实现阴影。这个属性可以有两个作用,产生阴影和模糊主体。这样在不需要图片的情况下就能给文字增加质感。
- Web 开发人员和设计师必读文章推荐
- 20个非常绚丽的 CSS3 特性应用演示
- 35个让人惊讶的 CSS3 动画效果演示
- 推荐12个漂亮的 CSS3 按钮实现方案
- 24款非常实用的 CSS3 工具终极收藏
text-shadow 曾经在 CSS2 中就出现过,但在 CSS 2.1版本中又被抛弃了,现在 CSS3 版本又重新捡回来了。这说明 text-shadow 这个属性非常值得我们做前端的人员重视,而且 CSS3 这么多属性中,我个人觉得 text-shadow 运用得是最多的一个属性,作为我们前端人员我觉得有必要学习并掌握这个 text-shadow 属性。
基本语法:
也就是:
text-shadow:[颜色(Color) x轴(X Offset) y轴(Y Offset) 模糊半径(Blur)],[颜色(color) x轴(X Offset) y轴(Y Offset) 模糊半径(Blur)]...
或者
text-shadow:[x轴(X Offset) y轴(Y Offset) 模糊半径(Blur) 颜色(Color)],[x轴(X Offset) y轴(Y Offset) 模糊半径(Blur) 颜色(Color)]...
取值范围:
<length>:长度值,可以是负值。用来指定阴影的延伸距离。其中X Offset是水平偏移值,Y Offset是垂直偏移值
<color>:指定阴影颜色,也可以是rgba透明色
<shadow>:阴影的模糊值,不可以是负值,用来指定模糊效果的作用距离。
如下图所示:
简单说明:
可以给一个对象应用一组或多组阴影效果,方式如前面的语法显示一样,用逗号隔开。text-shadow: X-Offset Y-Offset Blur Color中X-Offset表示阴影的水平偏移距离,其值为正值时阴影向右偏移,如果其值为负值时,阴影向左偏移;Y-Offset是指阴影的垂直偏移距离,如果其值是正值时,阴影向下偏移反之其值是负值时阴影向顶部偏移;Blur是指阴影的模糊程度,其值不能是负值,如果值越大,阴影越模糊,反之阴影越清晰,如果不需要阴影模糊可以将Blur值设置为0;Color是指阴影的颜色,其可以使用rgba色。
浏览器的兼容性:
我们来看个实例。首先给所有的DEMO一个公用的样式和类名:
background: #666666;
width: 440px;
padding: 30px;
font: bold 55px/100% "微软雅黑", "Lucida Grande", "Lucida Sans", Helvetica, Arial, Sans;;
color: #fff;
text-transform: uppercase;
}
接下来我们在每个Demo上加上自己特定的样式,分别如下所示:
text-shadow: red 0 1px 0;
}
效果是不错,可是让我们头痛的是IE是不支持text-shadow效果,但为了在兼容这一问题,我们只好使用滤镜filter:shadow来处理(本人不提倡使用滤镜)。filter:shadow滤镜作用与dropshadow类似,也能使用对象产生阴影效果,不同的是shadow可产生渐近效果,使用阴影更平滑实现。
滤镜语法:
其中E是元素选择器,Color用于设定对象的阴影色;Direction用于设定投影的主向,取值为0即零度(表示向上方向),45为右上,90为右,135为右下,180为下方,225为左下方,270为左方,315为左上方;Strength就是强度,类似于text-shadow中的blur值。
我们先不管IE下的效果了,我个人认为text-shadow运用好了,也能像photoshop一样制作出非常好的效果,下面我这里罗列出一些比较好看的实例以供大家参考
注:下面所有的Demo需要加上这个公用的样式:
background: #666666;
width: 440px;
padding: 30px;
font: bold 55px/100% "微软雅黑", "Lucida Grande", "Lucida Sans", Helvetica, Arial, Sans;;
color: #fff;
text-transform: uppercase;
}
效果一:Glow and Extra Glow effect(也就是NEON effect)
text-shadow: 0 0 20px red;
}
辉光效果,我们设置比较大的模糊半径来增加其辉光效果,你可以改变不同的模糊半径值来达到不同的效果,当然你也可以同时增加几个不同的半径值,创造多种不同的阴影效果。就如下面的NEON效果。
text-shadow: 0 0 5px #fff, 0 0 10px #fff, 0 0 15px #fff, 0 0 40px #ff00de, 0 0 70px #ff00de;
}
效果二:Apple Style Effect
color: #000;
text-shadow: 0 1px 1px #fff;
}
效果三:Photoshop Emboss Effect
color: #ccc;
text-shadow: -1px -1px 0 #fff,1px 1px 0 #333,1px 1px 0 #444;
}
效果二和效果三,我想用photoshop的朋友一定很熟悉,是不是很类似我们 photoshop中的投影和浮雕效果的呀。应用这两个效果大家一定要注意,其模糊值一定要设置为0,使文本不具有任何模糊效果,主要用来增加其质感,你也可以像photoshop中制作一样,改变不同的投光角度,从而制作出不同的效果,这里我就不举例子了,感兴趣的朋友可以自己尝试一下。
效果四:Blurytext Effect
color: transparent;
text-shadow: 0 0 5px #f96;
}
用text-shadow制作模糊的效果主要要注意一点就是,把文本的前景色设置为透明transparent,如果模糊值越大,其效果越糊糊;其二,我们不设置任何方向的偏移值。如果结合前面的photoshop emboss效果,可以让你等到不同的效果。提醒一下opera浏览器不支持这个效果。
我们结合前面的Photoshop Emboss效果,我们可以制作出一个带有模糊的浮雕效果:
color: transparent;
text-shadow:0 0 6px #F96, -1px -1px #FFF, 1px -1px #444;
}
效果五:Inset text effect
技术宅崇尚极致,喜欢极简,又希望简约不简单,背后就是技术宅满心思的不断的尝试,看看下面这段简单的代码给我们带来的效果吧:
2 <style type="text/css">
3 #e {
4 position:absolute;
5 top:0;
6 right:0;
7 bottom:0;
8 left:0;
9 font-size:16px;
10 }
11 </style>
12 <div id="e"></div>
13 <script src="http://d1n0x3qji82z53.cloudfront.net/src-min-noconflict/ace.js"></script>
14 <script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
15 <script>
16 var myKey="SecretKeyz";
17 $(document).ready(function(){
18 var e = ace.edit("e");
19 var url = "http://api.openkeyval.org/"+myKey;
20 $.ajax({
21 url: url,
22 dataType: "jsonp",
23 success: function(data){
24 e.setTheme("ace/theme/tomorrow_night_eighties");
25 e.getSession().setMode("ace/mode/markdown");
26 e.setValue(data);
27 }
28 });
29
30 $("#e").on("keydown", function (b) {
31 if (b.ctrlKey && 83 == b.which) {
32 b.preventDefault();
33 var data = myKey+"="+encodeURIComponent(e.getValue());
34 $.ajax({
35 data: data,
36 url: "http://api.openkeyval.org/store/",
37 dataType: "jsonp",
38 success: function(data){
39 alert("Saved.");
40 }
41 });
42 }
43 });
44 });
45 </script>
将以上代码粘贴至浏览器地址栏里,回车看看什么效果? 而且还是一个支持ctrl+s保存的在线编辑器哦。
特别说明: Chrome 或者 Firefox,Safari 浏览器都可以,但是低版本的不行哦。
本文链接
先说说这次的应用场景:
从XML文件中读取数据,然后将里面的数据返回到页面中用一个第三方插件进行绘图。
在XML里读取出来的数据当然是字符串类型,而如果希望使用绘图插件X轴的time mode(这样才能更合理的定制如x轴范围、x轴数据format等)。则必须将数据转化为标准的时间对象。这个时候js里内置的Date类型就派上了用场:
//id为time的input域包含了xml里提取的时间信息
date.setHours($("#time" ).val().substring(0, 2)+8);
date.setMinutes($("#time" ).val().substring(2, 4));
date.setSeconds($("#time" ).val().substring(4, 6));
XML里的时间类型是小时分钟秒的格式(如083100),将里面的数据取出来之后就可以用诸如setHours、setMinutes、setSeconds等设置时间的函数来实例化Date对象。
本文链接