[翻译]标记语言和样式手册 Chapter 14 图片替换(6)
作者:zhaozy 来源:3user.com 发布时间:2008-02-18 12:56:00
技巧延伸
在这个单元中,首先先来看看两个真实世界里或许能正确应用的图片替换技术的地方,首先,我们先来看看标识(logo)替换的有用技巧,这是推广FIR技巧的(方法A)的Douglas Bowman最先告诉我的.其次,我会分享Fast Company的网站是如何不使用JavaScript单靠图片替换技术做出导航系统的.
标识替换
在本章开始的时候讨论了如何用CSS把文字替换成图片.这些方法都有些特定的缺点,但是这些缺点陷在一种特殊情况下会完全消失:那就是用图片.....替换掉另一个图片.
但是为什么会想这么做?
Hi-Fi和Lo-Fi
以图片替换掉另一个图片的理由之一,可能是为了提供不同的网站标识,一种给完全支持CSS(能正确处理background属性)的浏览器,另一种则是给老旧浏览器,手持设备,屏幕阅读器等.
如果你的标识有配合CSS设计的透明颜色,特殊颜色时,这个方法尤其便利,你或许会想显示Lo-Fi版本的标识,让页面在CSS关闭或者不支持的时候仍然有不错的外观.
示例
为了避开著作权律师的纠缠,我将再度以个人网站作为示例.它不仅替换了标识图片,同时还考虑到首页之外的其他页面,启用CSS版的标识仍能作为超链接点击,连回首页.
一起来看看我在首页上标记标识所使用的源代码,以及其他页面使用的源代码.
这是首页的:
<div id="logo">
<span><img src="/images/logo_lofi.gif" width="173" height="31" alt="SimpleBits" /></span>
</div>
其他所有页面的标识都能点击,将使用者带回到首页:
<div id="logo">
<span><a href="/"><img src="/images/logo_lofi.gif" width="173"
height="31" alt="SimpleBits" /></a></span>
</div>
一对标识
图14-6和14-7是我使用的两个标识,前面这个是在未使用样式的页面里显示于行内的版本(Lo-Fi),而后面这个则是在现代浏览器之内被CSS引用的图片(Hi-Fi).
图14-6 未启用CSS的浏览器会看到的logo_lofi.gif
图14-7 启用CSS的浏览器会看到的logo_corn.gif
CSS内容
把这些东西搭在一起,加上CSS使每件事成为可能!
首先,把行内图片的宽度设为0将它隐藏起来,记得不要用display属性隐藏lo-fi标识,这样屏幕阅读器才比较有机会正确念出隐藏图片(的alt文字内容):
#logo img {
display: block;
width: 0;
}
接着,为我偷偷加上的<span>标签以background属性指定hi-fi标识图片.对,这很没意义,语义上也很没意义,但是这次就当成例外吧.
#logo span {
width: 173px;
height: 31px;
background: url(../images/logo_corn.gif) no-repeat;
}
你应该发现了,我们该做的所有事情就是把高度,宽度设成与替换用的图片相同,同时把背景图片指定为hi-fi版.


猜你喜欢
- 环境ubuntu 12.04 LTSpython 2.7.3opencv 2.3.1-7安装依赖sudo apt-get install l
- 使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载刷新整个页面,这使得程序能够更快地回应用户的操作,如下笔记将简单介
- 本文实例讲述了JavaScript简单计算人的年龄的方法。分享给大家供大家参考,具体如下:注意Date()类型转换,否则会出现NaN的错误b
- 如下所示:#encoding=utf-8import xlrdfrom xlwt import *#------------------读数
- <script language=javascript> function moveIt(obj){ var tableId;
- 目录1,刚开始(可能会很low)2.单行消失3.优化后的单行消失总结1,刚开始(可能会很low)import timescale=10pri
- 解读pandas.DataFrame.corrwithpandas.DataFrame.corrwith用于计算DataFrame中行与行或
- 内容摘要:“ASP”(Active Server Pages)作为一种典型的服务器端网页设计技术,被广泛地应用在网上银行
- Mysql 中数据是要落盘的,这点大家都知道。读写磁盘速度是很慢的,尤其和内存比起来更是没的说。但是,我们平时在执行 SQL 时,无论写操作
- 命令行方式运行Python脚本在这个章节中,我们将写一些简单的数据库管理脚本。在此之前让我们来复习一下如何通过命令行方式执行Py
- 本文实例讲述了mysql数据表的基本操作之表结构操作,字段操作。分享给大家供大家参考,具体如下:本节介绍:表结构操作创建数据表、查看数据表和
- using System; using System.Data; using Syst
- 一·json数据格式1.什么是jsonJSON是一种轻量级的数据交互格式。可以按照.JSON指定的格式去组织和封装数据
- Golang 是一种现代的编程语言,它具有高效、简洁和可扩展等特点,因此在各种领域广泛应用。在 Golang 中,读取文件是一个常见的操作。
- 当现有video播放器不能满足需求时,需要自己对video进行封装。video事件loadstart: 在视频开始加载时触发,给curren
- 用法本脚本用于批量扫描端口 1.在同目录下创建输入文件,属性inputFile为输入文件名2.属性th为线程数3.属性port为探测的目标端
- 迭代器什么是迭代迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代&
- hmac模块hmac模块用于生成HMAC码。这个HMAC码可以用于验证消息的完整性,其原理也很简单,就是一种加入了密钥的消息摘要,相比起MA
- 1、由于国外网站太慢,所以这里使用的是阿里的镜像https://mirrors.aliyun.com/pypi/simple/2、去官网查看
- 在服务器上,通常为了快速登录数据库,我们会使用mysql -hhost -uusername -ppassword db的方式登录数据库,如