网景和微软的浏览器之战早已淡去多年,最终以微软的IE浏览器胜出,特别是IE6的出现,一度成为世界浏览器的霸主,至今无人能敌。去年IE6荣获“终身成就奖”,真是实至名归。本文涉及的两个标签abbr和acronym,与这两家公司渊源颇深,让我们一起来通过它们去回顾那段风云岁月,更深入地去了解它们吧!

  从用法上来说,abbr和acronym并没有多大区别,它们作为缩写标签在HTML4.0就已经被引入。abbr缩略的范围更为广泛,可以是短语、单词首字母、甚至中文,acronym当然也都可以用,但是更精确的用法应该是用来缩写单词首字母。它们在浏览器上的表现形式主要有两点:

  1.   文本下方有类似border-style:dotted样式的虚线;
  2.   鼠标移到文本时,会有pop弹出,pop里面的文字即标签title属性的值。

  其实这两点表现形式,正好把缩略标签的作用体现出来:一个是重点提示,另外就是缩略功能。

  刚开始,网景发明了abbr,人们通过鼠标移到文本上方,就能看到对文本更加详细的注释。但是在IE6及其以下版本不会出现这样的效果。为什么?因为当年网景和微软在竞争白热化的情况下,微软的IE浏览器索性直接忽略abbr标签。那微软也想通过一个标签,能够实现上述那样的效果,怎么办?

  在那个浏览器市场决定生杀大权的时代,无人能够阻止微软的“霸道”,于是另一个缩写标签应运而生,它就是acronym。acronym的出现当然能够解决IE6及其以下版本不显示问题,但是从此web开发中有了两个缩写标签,它们都能够通过w3c的验证,而开发人员经常是傻傻分不清楚两者的区别了。

  都说三十年河东三十年河西,当年网景败给微软,网景的许多工程师纷纷离职,他们中的许多人又纷纷加入目前为大家所熟知的IT公司,如google、apple、w3c组织、mozilla,这些工程师先后开发出firefox、chrome、safari等目前世界上主流的浏览器;另一方面,由于微软IE浏览器渐显老态龙钟,不管是漏洞或者启动速度,还是访问体验。用户的抱怨越来越多,终于有一天,用户大规模地逃离,让微软意识到需要对IE6进行升级了。所以大家会发现,从06年以后,微软对IE浏览器的升级越来越频繁。

  微软的“霸道”在十多年后,终于是受到了惩罚。w3c组织在HTML5明确提出,acronym将作为废弃标签而不再被应用到web开发中了。

  所以,通过这段历史的阐述,我想说明的是:所有存在的东西都是由当时的历史决定的,有些东西最终被历史淘汰,跟它自身的局限性息息相关。人们渴望大一统,正所谓合久必分,分久必合。

  现在,我们可以不必理会acronym了,把心放到abbr上来。先给行简单的代码:

<abbr title="Cascading Style Sheet">CSS</abbr>

  将这行代码放在body结构里,在各浏览器下查看效果。你会发现,使用ie7以上版本的trident浏览器,webkit和gecko浏览器,当鼠标移到“CSS”文字上时,会有pop弹出,其中IE和谷歌浏览器的文本下方没有虚线,而火狐和opera则有虚线。前面说过,abbr在IE6下直接被忽略,所以什么效果都没有。

  为了让虚线效果都一致,你可以添加这样一段样式:

abbr,acronym,span.abbr{
cursor : help;
border-bottom : 1px dotted #;
}

  这时候,再查看,除了虚线一致外,鼠标移到文本上还有一个问号提示呢。

  如何解决IE6忽略abbr标签的问题?有两个办法。

  1.   通过嵌套无语义的span标签,来模拟acronym。具体实现代码如下:

    <abbr title="Cascading Style Sheet">
       <span class="abbr" title="Cascading Style Sheet">CSS</span>
    </abbr>

      这时候,你再结合上面的样式,就会发现问题已经解决。但是这种方法不够好,代码不够健壮。如何不添加额外标签而让abbr实现应有的表现?

  2. 脚本实现

  追加脚本代码:

function styleAbbr() {
var oldBodyText, newBodyText, reg
if (isIE) {
oldBodyText = document.body.innerHTML;
reg = /<ABBR([^>]*)>([^<]*)<\/ABBR>/g;
newBodyText = oldBodyText.replace(reg, '<ABBR $1><SPAN class=\"abbr\" $1>$2</SPAN></ABBR>');
document.body.innerHTML = newBodyText;
}
} window.onload = function(){
styleAbbr()
}; isIE = (document.all) ? true:false;

  把这段代码添加到head头部里,同样可以解决IE6不兼容abbr标签的问题。该段脚本很简单,相信大家都看得懂。不作解释...

  希望本文对你有帮助,up!

  申明:后半部分的代码参考自网上。

   

   

   

   

   

▲历史回眸--abbr和acronym的渊源的更多相关文章

  1. 引用、引用和术语定义<abbr><acronym><address><bdo><blockquote><q><cite><dfn>

    <abbr>-缩写 <acronym>-首字母缩写  <address>-地址 <bdo>-文字方向 <blockquote>-长的引用 & ...

  2. 【HTML基础】<acronym>和<abbr>的区别

    缩写标签<acronym> <abbr>的区别 大家都知道HTML定义缩写有<acronym> <abbr>两种标签,但是经常分不清楚他们.这两个标签虽 ...

  3. 学习笔记 第十二章 CSS3+HTML5网页排版

    第12章   CSS3+HTML5网页排版 [学习重点] 正确使用HTML5结构标签 正确使用HTML5语义元素 能够设计符合标准的网页结构 12.1  使用结构标签 在制作网页时,不仅需要使用< ...

  4. Css中的两个重要概念:块状元素和内联元素

    一.display:block display:block就是将元素显示为块级元素,一般是其他元素的容器,可容纳内联元素和其他块状元素,块状元素排斥其他元素与其位于同一行,宽度(width)高度(he ...

  5. CSS3与页面布局学习总结(二)——Box Model、边距折叠、内联与块标签、CSSReset

    一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...

  6. 【干货分享】前端面试知识点锦集01(HTML篇)——附答案

    一.HTML部分 1.浏览器页面有哪三层构成,分别是什么,作用是什么? 构成:结构层.表示层.行为层分别是:HTML.CSS.JavaScript作用:HTML实现页面结构,CSS完成页面的表现与风格 ...

  7. 我的博客CSS

    这个是按照custom标准模板来做的,博客园已经有模版了,有些细节不是很好,这个是源CSS,喜欢的可以自由DIY,完善更好. @charset "utf-8"; /* CSS Do ...

  8. CSS 清除默认样式

    通常有以下几句就够了: *{margin:0;padding:0} li{list-style:none} img{vertical-align:top;border:none} 如果你想写全也可以: ...

  9. HTML元素基础学习

    HTML元素 HTML文档是由HTML元素定义的.HTML元素是指从start tag(opening tag)到end tag(closing tag)的所有代码,即start tag + cont ...

随机推荐

  1. 69 Spring Interview Questions and Answers – The ULTIMATE List--reference

    This is a summary of some of the most important questions concerning the Spring Framework, that you ...

  2. Pyhon之类学习1

    #!/usr/bin/python # Filename: class.py __metaclass__=type class Person: def set_name(self,name): sel ...

  3. cobbler部署

    1.cobbler介绍 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的 ...

  4. elasticsearch学习一、安装和配置

    原文链接:http://jingyan.baidu.com/article/48206aead42b53216bd6b372.html ElasticSearch是一个基于Lucene的搜索服务器.它 ...

  5. 推荐几个对Asp.Net开发者比较实用的工具 2

    推荐几个对Asp.Net开发者比较实用的工具.大家有相关工具也可以在评论区留言,一起努力学习. 作为程序员要有挑战精神,大家可以尝试一下这些工具. 已经有篇文章写到了vs的扩展工具,这里不再累赘,请查 ...

  6. js calendar橙色日期选择器代码

    原文出处 http://files.cnblogs.com/files/quixon/date_js.rar

  7. hdoj1874 (优先队列+Dijkstra)

    hdoj1874 分析: 一看题目, 就是求最短路, 这道题用的是Dijkstra+优先队列.先说一下Dijkstra算法:每次扩展一个距离最短的节点, 更新与其相邻点的距离. 当所有边权都为正时, ...

  8. JavaMail组件实现邮件功能

    实现邮件收发功能需要3个jar包: 1.JavaMail组件保内的mail.jar和smtp.jar包 2.JAF组件包里的activition.jar. 复制到WebRoot/WEB-INF/lib ...

  9. WPF-TxtBox控件利用KeyDown来控制键盘输入

    private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)        {            TextBox txt = ...

  10. ZOJ 2702 Unrhymable Rhymes(DP)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1702 题目大意:给定有很多数字组成的诗,譬如 “AABB”, “AB ...