图像替换技术非常强大且很快开始流行——若是没有它,我们甚至都无法建立禅意花园。该技术可以说是实现复杂、灵活CSS布局的一块最为重要基石。
由此可以见图像替换的重要。

也许你会说直接放一副图片或加上背景不行吗?为什么要写上文本有把文本隐藏呢?这不是多此一举吗?这样做确实能达到一样的视觉效果,但对搜索引擎是不利的。因为搜索引擎不能从这块地方的到任何内容,它就不知道这块地方要表达什么意思。而使用图像替换技术对搜索引擎就很友好。在引用《CSS禅意花园》中的一段:

图像替换技术使用display:none的本意并不只是想要替换文本,这样做还有一些更深层次的理由。实际上,若是没有任何提示或帮助,计算机就无法认出或读取图像中包含的文字。例如HTML中img元素,若是没有了alt属性,那么对于google等搜索引擎,以及辅助浏览设备(例如,屏幕阅读器即可阅读页面内容,并以声音的形式告诉浏览者)之类无法呈现图像的客户端来说,将变的豪无意义。而图像替换技术则保留了被替换元素中的原有文本,因此无论对任何客户而言,理解页面内容都不成问题。
直接使用图像或背景是传统表格布局使用的方法,而图像替换是CSS布局使用的方法。这又一次证明了CSS布局的网站更有优点。

Levin的方案:
Levin Alexander想出了一个绝妙的注意:不再将文本置放于span中,而是将其从span中移出来,将文本和span一起放在父元素中,然后使用这个空白的span覆盖文本,并将背景图像应用到span之上。如果一切顺利的话,屏幕阅读器即可正常访问这段文本,切也充分考虑并解决了浏览器禁用图像后空白页面的可访问性问题了。但新的问题也随之出现,那就是图像不能是透明的,否则用户将会看到下面的文本。切这种方案所需要的CSS代码极为冗长,让人难以理解。

HTML代码:

XML/HTML Code复制内容到剪贴板
  1. <h3 class="replace" id="myh1">And a dash of Thyme.<span></span></h3>  


CSS代码:

CSS Code复制内容到剪贴板
  1. .replace{   
  2. position:relative;   
  3. margin:0;   
  4. padding:0;   
  5. }   
  6. .replace span{   
  7. display:block;   
  8. position:absolute;   
  9. top:0;   
  10. left:0;   
  11. z-index:1;   
  12. }   
  13. #myh1,#myh1 span{   
  14. height:25px;   
  15. width:300px;   
  16. background:url(thyme.png);   
  17. }  

优点:屏幕阅读器可正常访问;解决浏览器禁用图片后空白页面的可访问性问题。

缺点:无法使用透明图像;CSS代码较为冗长。

Leahy和Langridge的方案:
Seamus Leahy和Stuart Langridge均独立地发现了这种方法。该方法让我们不必再添加那些多余的<span>标签,且在保证屏幕阅读器可以正常阅读文本的同时,也能在页面中隐藏元素中的内容。

HTML代码:

XML/HTML Code复制内容到剪贴板
  1. <h3 id="header">I like cola.</h3>  

CSS代码:

CSS Code复制内容到剪贴板
  1. #header{   
  2. padding:25px 0 0 0;   
  3. overflow:hidden;   
  4. background:url(cola.gif) no-repeat;   
  5. height:0;   
  6. }  


优点:屏幕阅读器可正常访问,没有多余的<span>。

缺点:并没有解决浏览器禁用图象后空白页面的可访问性问题。

Fahrner的方案:
2003年3月,Douglas Bowman在他的网站Stopdesign上发布了一个技巧(www.stopdesign.com/articles/replace_text),让设计师能够用一张背景图像替代某元素中的文字,以期显出更美观的字体。为了表示对发明者Todd Fahrner的尊重,这个技巧随后也被叫做“Fahrner图像替换(Fahrner Image Replacement,FIR)”。该技巧实现非常简单:用span将元素中的文本包围起来,然后通过应用CSS样式隐藏这个span中的文本,最后将背景图像应用到该元素之上即可。例如,对于下面的这一段HTML标记:

XML/HTML Code复制内容到剪贴板
  1. <h1 id="pageHeader"><span>css Zen Garden</span></h1>  


我们可以使用下面的这段CSS容易地实现图像替换:

CSS Code复制内容到剪贴板
  1. #pageHeader{   
  2. background:url(lemonfresh.gif) top left no-repeat;   
  3. width:400px;   
  4. height:20px;   
  5. }   
  6. #pageHeader span{   
  7. display:none;   
  8. }  

通过使用CSS的display:none或visibility:hidden,所有在#pageHeader元素中的span元素都被隐藏起来。Hellsing同时使用了上述两种CSS设定——但它们的效果确实一致的。图像替换技术非常强大且很快开始流行——若是没有它,我们甚至都无法建立禅意花园。该技术可以说是实现复杂、灵活CSS布局的一块最为重要基石。

Rundle的方案:
设计师Mike Rundle提出了一中使用负text-indent属性值的方法,将文本推到屏幕的左边缘之外,代码简洁优雅。

HTML代码:

XML/HTML Code复制内容到剪贴板
  1. <h3 id="header">Apple pie with cheddar?!</h3>  


CSS代码:

CSS Code复制内容到剪贴板
  1. #header{   
  2. text-indent:-5000px;   
  3. background:url(sample-image.gif) no-repeat;   
  4. height:25px;   
  5. }  

优点:屏幕阅读器可正常访问;没有多余的<span>;简洁优雅的CSS。

缺点:并没有解决浏览器禁用图像后空白页面的可访问性问题。

标签:
CSS,图片

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
评论“CSS图像替换技术的几种方案介绍”
暂无“CSS图像替换技术的几种方案介绍”评论...

P70系列延期,华为新旗舰将在下月发布

3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。

而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?

根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。