目录
定义
用法
浏览器的支持情况" >浏览器的支持情况
高级应用
1、分配工作" >1、分配工作
2、说明功能模块及使用方法
3、对于页面制作的备注" >3、对于页面制作的备注
4、在页内CSS/JS的作用
5、利用注释插入代码
6、利用条件注释来兼容各浏览器
条件注释html标签
根据注释引用不同的样式表
根据条件加载js
BUG问题
IE6下的小尾巴
注释出现在DOCTYPE之前
前端其它注释
css中的注释
js中的注释
总结
首页 web前端 html教程 聊一聊HTML <!--…-->标签

聊一聊HTML <!--…-->标签

Jun 01, 2016 pm 02:32 PM

定义

注释标签用于在html源代码中插入注释。注释不会在浏览器上显示。

用法

根据定义的基本用法,代码如下

<!-- 这是一段注释,我不会显示在页面上 -->
登录后复制

浏览器的支持情况

所有浏览器都支持
上面这些只是最简单的定义和使用方法。对于注释的使用,有哪些更高级的使用。

高级应用

1、分配工作

<!-- todo:张三 begin -->
<div></div>
<!-- end -->
登录后复制

2、说明功能模块及使用方法

<!-- 激活状态类:active,默认状态类:default,无法使用状态类:disabled -->
<ul><li class="active">激活</li><li class="default">默认</li><li class="disabled">无法使用</li></ul>
登录后复制

3、对于页面制作的备注

<!-- 此页面创建于2016/5/31,前端:李四,设计:王五 -->
登录后复制

以上3种应用都是基于注释的说明作用,利用其在浏览器上不显示的特性,对文档进行说明,方便工作中跨组跨部门的沟通。

4、在页内CSS/JS的作用

用于兼容老版的浏览器,对于js和css还无法识别。(只用于了解,现在基本可以放弃使用这个功能了),代码如下

<!DOCTYPE html>
<html>
<head>
<style>
.good{color:red;}
</style>
</head>
<body>
<script>alert('good')</script>
<p>morning</p>
</body>
</html>
登录后复制

上面的代码会直接显示在页面

.good{color:red;}alert('good')
morning
登录后复制

可以使用注释,以防止代码显示,影响页面体验。

<!DOCTYPE html>
<html>
<head>
<style>
<!--
.good{color:red;}
-->
</style>
</head>
<body>
<script>
<!--
alert('good')
//-->
</script>
<p>morning</p>
</body>
</html>
登录后复制

此处理还使用了//,是javascript的注释符号,防止js对-->执行。

5、利用注释插入代码

这点也是利用注释不会被页面渲染的特性,来对页面进行优化。可以用来存储数据,可以用来存储模板。

<!-- {id:10000,type:ad,image:1.jpg} -->
<div is-tpl>
<!--
<div>1111111</div>
<div>2222222</div>
-->
</div>
登录后复制

这里的代码可以用正则表达进行匹配,来取出对应数据然后对数据进行解析处理。下面是使用jquery简单的演示代码

$('[is-tpl]').each(function(){
	console.log($(this).html())	
	var comment=$(this).html();
	$(this).html(comment.replace('<!--','').replace('-->',''));
})
登录后复制

这样代码也正确显示了,具体注释里要放什么数据以及怎么处理,大家自己思考一下吧。

6、利用条件注释来兼容各浏览器

以下条件注释判断IE浏览器(IE10以后已经不支持这些注释了),其它浏览器都会认为下面是注释,不进行解析。

<!--[if IE 6]> 仅IE6可识别 <![endif]-->
<!--[if IE]> 所有的IE可识别 <![endif]--> 
<!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> 
<!--[if IE 6]> 仅IE6可识别 <![endif]--> 
<!--[if lt IE 6]> IE6以下版本可识别 <![endif]--> 
<!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]--> 
<!--[if IE 7]> 仅IE7可识别 <![endif]--> 
<!--[if lt IE 7]> IE7以下版本可识别 <![endif]--> 
<!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]--> 
<!--[if IE 8]> 仅IE8可识别 <![endif]--> 
<!--[if IE 9]> 仅IE9可识别 <![endif]-->
登录后复制

以上代码大家应该是比较熟悉的,只做js和移动端的高大上,应该没有见过。

看着很多,记忆这个可以根据下面的规律记:
a、基本结构:

<!--[if ]> 代码 <![endif]--> 
登录后复制

b、和IE关系

  • 等于为空
  • 大于为gt
  • 小于为lt
  • 大小于加等于gte,lte

c、然后加版本号
d、最后记得中间用空格
记住一个特别的其他浏览器使用的。

<!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> 
登录后复制

这个可以解释成,两对注释加中间代码。

对于这些个条件注释的使用,经常看到有:

条件注释html标签

<!DOCTYPE html>
<!--[if IE 6 ]> <html class="ie6 lte_ie6 lte_ie7 lte_ie8" lang="zh-CN"> <![endif]-->
<!--[if lte IE 6 ]> <html class="lte_ie6 lte_ie7 lte_ie8" lang="zh-CN"> <![endif]-->
<!--[if lte IE 7 ]> <html class="lte_ie7 lte_ie8" lang="zh-CN"> <![endif]-->
<!--[if lte IE 8 ]> <html class="lte_ie8" lang="zh-CN"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--><html lang="zh-CN"><!--<![endif]-->
登录后复制

这个可以在特定的浏览器去对样式进行定义

.ie6 body{}
登录后复制

上面这个只有在ie6的浏览器才会有这个样式。

根据注释引用不同的样式表

<!--[if IE 6 ]>
<link rel="stylesheet" type="text/css" media="all" href="./ie6.css" />
<![endif]-->
登录后复制

根据条件加载js

在IE6,引用对png24的图像支持的js

<!--[if IE 6]> 
<script src="DD_belatedPNG.js" mce_src="DD_belatedPNG.js"></script> 
<script type="text/javascript"> 
DD_belatedPNG.fix('.png');// .png改成使用了透明PNG图片的选择器 
</script> 
<![endif]--> 
登录后复制

对于DD_belatedPNG.js,大家百度一下,很容易找到相关的使用方法和库。

BUG问题

IE6下的小尾巴

在ie6下,对于行内元素,中间添加注释,可能会产生,一个尾巴。

<div style="width:80px; background:red;"><!--我是一个注释--><a href="#">1</a><a href="#">12</a><a href="#">31</a><!--我是一个注释--><a href="#">41</a><a href="#">51</a><a href="#">61</a><!--我是一个注释--><a href="#">71asdfasfd</a><!--我是一个注释--></div>
<style>
a{
float:left;
display:inline-block;
padding:0 3px;
}
</style>
登录后复制

如图

image
只要删除各行注释和换行,问题解决。

注释出现在DOCTYPE之前

虽然说DOCTYPE html之前不应该出现任何代码,但出现注释,各主流浏览器并不会出现问题。但在ie7及以下浏览器会无法识别渲染类型,导致使用怪异模式渲染,出现页面样式错乱。

<!--我是第一行的注释-->
<!doctype html>
<html>
<head>
<meta charset="gb2312">
<title>无标题文档</title>
<style>
.demo{
	width:100px;
	margin:0 auto;
	height:100px;
	background:red;
}
</style>
</head>

<body>
<div class="demo"></div>
</body>
</html>
登录后复制

ie7及以下显示为

image

前端其它注释

css中的注释

/* 我是css中的注释 */
登录后复制

css中的注释,只有这一种。

注意:使用中文注释注意在注释符号的前后各加一个空格,防止编码错误乱码导致样式无法读取。

js中的注释

单行注释

//我是单行注释
登录后复制

多行注释

/* 我是多行注释
我是多行注释
*/
登录后复制

建议都使用多行注释,以防止出现,换行符删除后出现的代码功能错误。

var s=10;//定义了s为10
var b=20;
console.log(b);
登录后复制

少了换行符后

var s=10;//定义了s为10var b=20;
console.log(b);
登录后复制

这时出现错误。
如果使用的多行则

var s=10;/*定义了s为10*/var b=20;
console.log(b);
登录后复制

代码不会出错。

以上情况也会出现在多个js合并时,单行注释也会造成相应的错误。

总结

通过这一通查找资料,一直也没觉得一个注释标签可以整理这么多东西。里面有些比如建议或注意的问题,都是我在实际工作中遇到过的。其他没有接触的也无从写起了,还有什么漏掉的,可以在评论中给我一些建议。当然希望你对这个文章喜欢,并关注我。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

&lt; datalist&gt;的目的是什么。 元素? &lt; datalist&gt;的目的是什么。 元素? Mar 21, 2025 pm 12:33 PM

本文讨论了html&lt; datalist&gt;元素,通过提供自动完整建议,改善用户体验并减少错误来增强表格。Character计数:159

&gt; gt;的目的是什么 元素? &gt; gt;的目的是什么 元素? Mar 21, 2025 pm 12:34 PM

本文讨论了HTML&lt; Progress&gt;元素,其目的,样式和与&lt; meter&gt;元素。主要重点是使用&lt; progress&gt;为了完成任务和LT;仪表&gt;对于stati

&lt; meter&gt;的目的是什么。 元素? &lt; meter&gt;的目的是什么。 元素? Mar 21, 2025 pm 12:35 PM

本文讨论了HTML&lt; meter&gt;元素,用于在一个范围内显示标量或分数值及其在Web开发中的常见应用。它区分了&lt; meter&gt;从&lt; progress&gt;和前

&lt; iframe&gt;的目的是什么。 标签?使用时的安全考虑是什么? &lt; iframe&gt;的目的是什么。 标签?使用时的安全考虑是什么? Mar 20, 2025 pm 06:05 PM

本文讨论了&lt; iframe&gt;将外部内容嵌入网页,其常见用途,安全风险以及诸如对象标签和API等替代方案的目的。

视口元标签是什么?为什么对响应式设计很重要? 视口元标签是什么?为什么对响应式设计很重要? Mar 20, 2025 pm 05:56 PM

本文讨论了视口元标签,这对于移动设备上的响应式Web设计至关重要。它解释了如何正确使用确保最佳的内容缩放和用户交互,而滥用可能会导致设计和可访问性问题。

如何使用HTML5表单验证属性来验证用户输入? 如何使用HTML5表单验证属性来验证用户输入? Mar 17, 2025 pm 12:27 PM

本文讨论了使用HTML5表单验证属性,例如必需的,图案,最小,最大和长度限制,以直接在浏览器中验证用户输入。

HTML5中跨浏览器兼容性的最佳实践是什么? HTML5中跨浏览器兼容性的最佳实践是什么? Mar 17, 2025 pm 12:20 PM

文章讨论了确保HTML5跨浏览器兼容性的最佳实践,重点是特征检测,进行性增强和测试方法。

我如何使用html5&lt; time&gt; 元素以语义表示日期和时间? 我如何使用html5&lt; time&gt; 元素以语义表示日期和时间? Mar 12, 2025 pm 04:05 PM

本文解释了HTML5&lt; time&gt;语义日期/时间表示的元素。 它强调了DateTime属性对机器可读性(ISO 8601格式)的重要性,并在人类可读文本旁边,增强Accessibilit

See all articles