CSS文本渐变效果
另一篇CSS Decorative Gallery我觉得使用的技巧是一样的。
你不想打开PhotoShop制作每一张标题文字图片的渐变效果吧,这次是一个简单的技巧——仅仅使用一张PNG图片来实现所有的标题文本的渐变效果(纯CSS,不添加任何javascript或者flash)。仅仅在<hx>使用一个空的<span>,运用背景图片设置position:absolute覆盖在文本上。这个技巧几乎在所有浏览器上都工作得很好:FireFox,Safari,Opera,就连IE6也很好。想知道如何做的么,继续阅读吧。
特点
- 纯CSS技巧,很好的兼容性(include IE6)
- 绝佳的美化标题的技巧,不用PS每张标题图片
- 可运用与任何web字体,并且文本是可以缩放的
它是如何工作的?
非常简单,在文本上方重复平铺1px宽度的经过透明处理的PNG图片。
Html结构
<h1><span></span>CSS Gradient Text</h1>
CSS
关键点在于
h1{position:relative}
h1 span{position:absolute}
h1 {
font: bold 330%/100% "Lucida Grande";
position: relative;
color: #464646;
}
h1 span {
background: url(gradient.png) repeat-x;
position: absolute;
display: block;
width: 100%;
height: 31px;
}
就是这么简单,点击示例查看效果。
IE6 Hack
IE6不支持PNG-24,在IE6中要显示透明的PNG下面的这个Hack是必须的(添加在<head>标签的
任何地方).
<!--[if lt IE 7]>
<style>
h1 span {
background: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='gradient.png', sizingMethod='scale');
}
</style>
<![endif]-->
jQuery prepend版本(语义化Html文档)
不想在<hx>中添加空的<span>影响语义化编码,你可以用jQuery prepend添加。
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//prepend span tag to H1
$("h1").prepend("<span></span>");
});
</script>
更多的实例
不夸张的说,你可以使用这个技巧在所有固定背景颜色的元素上(保持渐变PNG的颜色和背景颜色一样)。
花样/纹理
也可以用有花纹纹理的背景图片,下面是一个斑马效果的例子,看,多么的具有想象力!
限制和不足之处
- 只能对固定的<hx>背景颜色有用,你的<span>背景图片必须和其一个颜色
- 兼顾IE6的话必须使用IE PNG hack
- 如果标题文本完全被覆盖的话将无法选择文本

浙公网安备 33010602011771号