找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1474|回复: 1

[建站技术] CSS文字渐变效果

[复制链接]
发表于 2011-6-14 15:51:17 | 显示全部楼层 |阅读模式
本文介绍的技术很经典,也算是一篇老文章了,相信很多人也都看过,之前神飞有注意到国内有些翻译,但是不全面,这里我就将其完整的翻译了一下。

你想制作漂亮的标题而不用将每个标题都做成图片吗?这里是一个简单的CSS技巧,它将向你展示使用一个png图片制作渐变文字的方法(纯CSS、无Javascript或Flash)。而你所需要的仅仅是在标题里面的一个空<span>标签,它使用背景图片和position:absolute属性将标题覆盖。该技巧经主流浏览器测试:Firefox, Safari, Opera, 以及Internet Explorer 6。

好处

  • 这是一个纯CSS技巧,无需JS或Flash。它兼容主流浏览器包括IE6 (需要使用PNG hack)。
  • 它对于设计标题是很完美的。你无需使用Photoshop制作每一个标题。这也显然能够节省你的时间和带宽。
  • 你当然可以是用任何网络字体和字体型号。


它是如何工作的?

这个小技巧很简单。基本上我们只是在文字上面添加了一个1px的渐变PNG图片(使用alpha透明)

HTML代码
  1. <h1><span></span>CSS Gradient Text</h1>
复制代码
CSS代码

这里的关键点是h1 { position: relative } 和h1 span { position: absolute }
  1. h1 {
  2.   font: bold 330%/100% "Lucida Grande";
  3.   position: relative;
  4.   color: #464646;
  5. }
  6. h1 span {
  7.   background: url(gradient.png) repeat-x;
  8.   position: absolute;
  9.   display: block;
  10.   width: 100%;
  11.   height: 31px;
  12. }
复制代码
是的,就这些,你已经搞定了。点击此处查看演示页面。

让它在IE6中可用

因为IE6不能正确渲染24位PNG图片,为了显示透明的png图片,下面的hack是必须的。(使用HTML条件注释的方法)在head部分的任何一个地方添加以下代码:
  1. <!--[if lt IE 7]>
  2. <style>
  3. h1 span {
  4.   background: none;
  5.   filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='gradient.png', sizingMethod='scale');
  6. }
  7. </style>
  8. <![endif]-->
复制代码
这正是我们为什么憎恶IE6的原因之一!
jQuery动态加入版本(对语义爱好者有用)

如果你不想在标题里面有个空的<span>标签,你可以使用Javascript动态加入<span>标签。使用jQuery的prepend 方法可以很容易的实现:
  1. <script type="text/javascript" src="jquery.js"></script>

  2. <script type="text/javascript">
  3. $(document).ready(function(){

  4.   //prepend span tag to H1
  5.   $("h1").prepend("<span></span>");

  6. });
  7. </script>
复制代码
局限性…

  • 这个技巧只适用于固定背景色的元素。你的渐变色(PNG 图片) 必须与背景色是同一个颜色。
  • 如果你想兼容IE6,就需要使用IE6的PNG hack(比如滤镜或JS方法)
  • 如果你的渐变图片比标题要高,那么这个文字将是不能被选择的。


PS:关于局限性的第一条,建议在demo页面使用firebug调试一下,改变一下背景色,就可以看出变化了——神飞。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|王牌互联

GMT+8, 2024-12-21 19:01 , Processed in 0.033971 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表