HTML注释

HTML注释

在HTML代码中,<!-- 和 -->标签之间的文本是文档的注释,注释的内容不会被显示在浏览器页面上。只有在文本编辑器中,或浏览器的“查看源代码”选项打开文档时,才能看到注释。

HTML中的注释有两种类型,一种是HTML代码注释,一种是IE条件注释。

1、HTML代码注释

在一个大文档中,通过注释来标明区块的开始合结束的位置,可以方便查找,也可以通过注释来阻止某些内容显示。

当编写了大量代码时,对关键代码进行注释是一个良好的习惯,通过注释来说明某段代码的意图,有助于提醒自己或需要在这个网站上工作的其他人,了解这段代码的作用。

使用注释来隐藏脚本,也是一个良好的习惯,这样一来,不支持脚本的浏览器就不会把脚本作为纯文本显示出来。如:

 
  1. <script type="text/javascript">
  2. <!--
  3. function displayMsg() {
  4.     alert("Hello World!")
  5. }
  6. //-->
  7. </script>

2、IE条件注释

IE条件注释(Conditional comments),是IE浏览器对HTML代码注释的一种扩展,它是一种非标准逻辑语句,可以灵活的为不同版本的IE导入不同html元素,如样式表、html标签等。

条件注释在IE5首次出现,并得到后续版本的支持,其语法就是一个普通的HTML注释,IE以外的浏览器会把它作为注释而忽略。因此,它能通过W3C的校验,也不会对其他浏览器造成影响。

条件注释的功能非常强大,可以进行 if 条件判断,并根据判断结果是true 或 false,来决定是否要解析条件注释里的内容。

条件判断以 <!--[if 条件]> 开始,以<![endif]-->结束,可以根据IE、非IE进行判断,还可以根据IE的版本号进行判断,版本号可以精确到小数点后4位。如:

 
  1. <!--[if IE]> <![endif]-->      /* 所有IE,无论哪个版本 */
  2. <!--[if IE 6]> <![endif]-->    /* 如果IE版本是6 */

条件判断中,还支持大于(gt: greater than)、小于(lt: less than)、大于等于(gte: greater than or equal)、小于等于(lte: less than or equal)、或(|)、与(&)、非(!)、括号。如:

 
  1. <!--[if gt IE 6]> <![endif]-->             /* 如果IE版本大于6 */
  2. <!-- [if lte IE 9]> <![endif]-->            / * 如果IE版本小于等于9 * /
  3. <!--[if IE 6 | IE 7]> <![endif]-->          /* 如果IE版本是6或7 */
  4. <!--[if ! IE 5.5]> <![endif]-->             /* 如果IE版本不是5.5 */
  5. <!-- [if (gt IE 6) & (lte IE 9)]> <![endif]-->  / * 如果IE版本大于6,且小于等于9 * /

借助条件注释,可以解决很多IE兼容性问题。如,IE9以下的版本不支持HTML5的新元素 header、nav、aside、footer等,而在Internet上存在大量的 html5shiv脚本可以解决该问题。只需下载相应的脚本,并在页面的头部,通过IE条件注释,让IE9以下的版本加载该脚本,就可以让这些老浏览器支持HTML5的新元素。

 
  1. <!--[if lt IE 9]>
  2. <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  3. <![endif]-->

也可以使用同样的方法,来解决CSS的兼容性问题。如,IE6不支持一些CSS新特性,就可以专门针对IE6编写CSS文件,并只让IE6加载它:

 
  1. <!--[if IE 6]>
  2. <link rel="stylesheet" href="css/ie6.css" />
  3. <![endif]-->

一个好消息是,从IE10版本开始,不再支持条件注释。这标志着IE从此走向成熟、走向标准,Web设计师再也不必为IE的兼容性问题所困扰了。

版权声明:本文出自 歪脖网 的《HTML5宝典》,欢迎在线阅读,并提出宝贵意见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值