[翻译]标记语言和样式手册 Chapter 14 图片替换(3)
作者:zhaozy 来源:3user.com 发布时间:2008-02-18 12:56:00
方法B: Leahy / Langridge 图片替换法 (LIR)
同时被 Seamus Leahy(http://www.moronicbajebus.com/playground/cssplay/imagereplacement/)与Stuart Langridge(http://www.kryogenix.org/code/browser/lir/)发展出来,LIR法的目标是处理图片替换问题,而不需要用上FIR里无意义但又必要的<span>标签.
LIR不用display属性隐藏文字,而是把外包元素的高度(在这个例子中是<h1>)设为0,并将padding-top设成与替换图片高度相同,把文字挤开.
标记源代码和CSS
由于这个方法不需要额外的<span>标签,因此标记源代码能缩减成:
<h1 id="lir">Leahy/Langridge Image Replacement</h1>
而把文字换成图14-4中的图片所需的CSS代码全在下面这段声明里:
#lir {
padding: 90px 0 0 0;
overflow: hidden;
background: url(lir.gif) no-repeat;
height: 0px !important; /* for most browsers */
height /**/:90px; /* for IE5/Win */
}
图14-4 用图片编辑器建立的lir.gif
用来替换掉文字的图片高90像素,因此把上内部定设定为相同的数值.对大多数浏览器来说,我们把高度设为0,就等于把文字(或是包含在<h1>之内的其他任何东西)完全去掉了,我们用!important规则,确保取用这个值而不是使用之后的值(只给IE5 for Windows使用),符合规范的浏览器会忽略第二个height规则,但是IE5 for Windows会取用它.
凄惨的盒模型
最后一个规则会修正IE 5 for Windows错误解析CSS盒模型的问题(参见第十二章 "盒模型问题").由于IE5 for Windows会把内补丁累加在宽度,高度之内,因此需要特别为这个浏览器提供矫正过的数值.
在这个例子里,高度等于替换用的图片高度.
缺点
虽然方法B能够丢掉多余的<span>标签(修正标记源代码向来就是好事),但是它与方法A有个相同的缺点,那就是关掉图片,启用CSS的使用者啥都看不到.
另一个LIR的缺点,就是需要盒模型Hack才能使IE5 for Windows正常运作.
由于方法B没有使用display属性隐藏文字,因此我们能假设这个方法对使用屏幕阅读器的人来说是个比较好的选择.但是与方法A一样,Leahy / Langridge法使用时也要注意,要考虑"关闭图片显示 / 启用 CSS"时的可用性.
接着再来看一个由Mike Rundle发现的图片替换法变形.


猜你喜欢
- 设计网站的同志背景主要有两种:学计算机、学艺术。基本上会写代码的不懂设计,会设计的不懂代码,这个格局似乎到今天还没变。某些学计算机的同学,有
- 1.核心代码使用py2neo连接neo4j的方法:from py2neo import Graphgraph = Graph("h
- 1 简介Golang 是一门优秀的语言,特别是在并发编程上,得益于它的协程和 channel 等,非常方便易用。它通过 go module
- validator自定义验证及易错点validator自定义验证element中Form 组件提供了表单验证的功能,只需要通过 rules
- Django原生的TextField并不友好,集成TinyMCE富文本编辑器Django版本:1.11.5TinyMCE版本:4.6.7第一
- 如下所示:fig.tight_layout()#调整整体空白 plt.subplots_adjust(wspace =0, hspace =
- 所使用python环境为最新的3.6版本一、安装pdfminer模块 安装anaconda后,直接可以通过pip安装pip install
- 将两个嵌套for循环写成一个列表生成式如,有一个嵌套列表,a=[[1,2],[3,4],[5,6]],要提取列表里的每一个元素用for循环处
- 在使用Python做开发的时候,时不时会给自己编写了一些小工具辅助自己的工作,但是由于开发依赖环境问题,多数只能在自己电脑上运行,拿到其它电
- 一、Python简介1.python介绍Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计
- 如下所示:df = pd.DataFrame({'key': ['b', 'b', '
- 最近学了一点点python爬虫的知识,面向百度编程爬了一本小说之后感觉有点不满足,于是突发奇想尝试爬一本漫画下来看看。一、效果展示首先是我们
- 1、存储过程基本语法: create procedure sp_name() begin ...... end; 2、如何调用: call
- 晚上打开MAC,发现root帐户突然不能正常登陆MySQL,于是打算重置密码,看了几篇文章,竟然重置不成功,总是得到Unknown colu
- 在前一篇博客我们学习了 Go 数组,其要求所有元素为同一数据类型,如果希望存储不同类型的数据,就要用到结构体相关知识。结构体的定义:存储相同
- 本文实例讲述了JQuery中serialize()用法。分享给大家供大家参考。具体分析如下:一、serialize()定义和用法:seria
- tkinter如何实现下拉框联动有些小伙伴想在GUI界面上实现像前端一样的下拉框联动的效果,但是前端可以通过Ajax实现,GUI如何实现呢,
- study.py内容如下#!/usr/bin/env python# -*- coding:utf-8 -*-__author__ =
- 本文实例讲述了C#使用ODBC与OLEDB连接数据库的方法。分享给大家供大家参考,具体如下:using System;using Syste
- ASP实现防止网站被采集代码如下:<% Dim AppealNum,AppealCount Appeal