HTML规范(基于HTML5)

1. HTML基础规范—整体结构

1.1 文件应以<!doctype html>首行定格开始,这句话告诉浏览器这是一个什么文件,我们推荐使用<!doctype html>。

1.2 必须在head元素内部的meta标签内声明文档的字符编码charset, 如:<meta charset="UTF-8">,这句代码告诉浏览器应该此HTML文件使用的字符集是什么,如果不加此行代码,那么在浏览器中可能显示为乱码。

1.3 页面的title是极为重要的不可缺少的一项。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>示例1</title>
 6 </head>
 7 <body>
 8
 9 </body>
10 </html>

1.4 结构顺序和视觉顺序基本保持一致

?按照从上至下、从左到右的视觉顺序书写HTML结构。

?有时候为了便于索取引擎抓取,我也会将重要内容在HTML结构顺序上提前,因为搜索引擎抓取网页内容是自上而下的,所以将重要的内容在HTML结构顺序上提前可便于抓取重要内容。

?用div代替table布局,可以使HTML更具有灵活性,也方便利用css控制。

? table不建议用于布局,但表现具有明显表格形式的数据,table还是首选项。

1.5 结构、表现、行为三者分类,避免内联。

?使用link将css文件引入,并置于head中。注意:一般我们不适用@import来引入外部css文件。

?使用script将js文件引入,并置于body底部,js文件最后加载,HTML会最先加载,用户体验会更好。注意:并不是所有的js文件都要放置与body底部,如果我们需要使用js文件动态修改meta元素内容时,需要将js文件引入head标签中。

1.6 保持良好的树形结构

?每一个块级元素都另起一行,每一行都使用tab缩进对齐。如果不是块级元素,比如几个行内元素,我们把它写在一行即可。注意:html、head、body以及body下的几个第一级标签(即直接子元素)不缩进,其他的都正常缩进。

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>示例1</title>
 6 </head>
 7 <body>
 8     <h1>缩进问题</h1>
 9     <div>我是块级元素</div>
10     <div>
11         <div>
12             <p>我是段落标签</p>
13         </div>
14     </div>
15 </body>
16 </html>

  1.7 其他问题

    • 结构上如果可以并列书写,就不要嵌套。例如:如果可以写成<div></div><div></div>那么就不要写成<div><div></div></div>
    • 如果结构已经可以满足视觉和语义的要求,那么就不要有额外的冗余的结构。例如:比如<div><h2></h2></div>已经能满足要求,那么就不要再写成<div><div><h2></h2></div></div>
    • 一个标签上应用的类名不要过多,越少越好。例如:<div class="class1 class2 class3 class4"></div>
    • 对于一个语义化的内部标签,应该尽量避免使用类名。例如:li标签中的itm应去除:<ul class="m-help"><li class="itm"></li><li class="itm"></li></ul>

1.8  Renderer

<meta http-equiv="X-UA-Compatible" content="edge,chrome=1" />

或者<meta http-equiv="X-UA-Compatible" content="edge" />

chrome=1值,目的是触发Google Chrome Frame,不过现在Google已经抛弃Google Chrome Frame了,因此也不用这样写了。

    <meta name="renderer" content="webkit|ie-comp|ie-stand">

content的取值为webkit,ie-comp,ie-stand之一,区分大小写,分别代表用webkit内核,IE兼容内核,IE标准内核。 若页面需默认用极速核,增加标签:<meta name=”renderer” content=”webkit” /> 若页面需默认用ie兼容内核,增加标签:<meta name=”renderer” content=”ie-comp” /> 若页面需默认用ie标准内核,增加标签:<meta name=”renderer” content=”ie-stand” />

这里发现一个问题,官方给的信息里结尾是“>”,实际测试时不起作用,这时只要把结尾改为“ />”(注意 / 前面有空格)。

2. HTML基础规范—代码格式

2.1 说明文案的注释方法

    • 开始注释:<!--注释文案-->
    • 结束注释:<!--/注释文案-->
    • 允许只有开始注释。
 1 <div class="public-header">
 2         <div class="public-container clearfloat">
 3             <div class="header-logo"><a href="javascript:;"></a></div><!-- a也可以,但是,同一级:要么内联要么块级 -->
 4             <ul class="header-nav clearfloat">
 5                 <li class="item"><a href="javascript:;">Our Story</a></li><!--不建议直接给li进行命名-->
 6                 <li class="item"><a href="javascript:;">Menu</a></li>
 7                 <li class="item"><a href="javascript:;">Reservations</a></li>
 8                 <li class="item"><a href="javascript:;">News</a></li>
 9                 <li class="item"><a href="javascript:;">Reviews</a></li>
10             </ul>
11         </div><!-- 没有高度的,所以要加浮动 -->
12     </div><!-- 1. 公共头 -->

   2.2 严格嵌套

(1)应当以最严格的XHTML script标准来嵌套,不如内联元素不能包含块级元素等。

(2)正确闭合标签且必须闭合。

2.3 严格的属性

(1)属性和值全部小写,每个属性都必须有一个值,每个值必须加双引号。

(2)没有值的属性必须使用自己的名称作为值(checked、disabled、readonly、selected等等)。

(3)可以省略style标签和script标签的type属性。

3. HTML基础规范—HTML内容语义

1.加强资源型内容的可访问型和可用性。

比如在img标签内加入alt属性,在audio内加入文案和链接等等。

2.加强不可见内容的可访性

比如背景图片的文字应该同时卸载HTML中,并使用css使其不可见,有利于搜索引擎抓取你的内容,也可在css失效的情况下看到内容。

3.适当使用实体(以实体代替与HTML语法相同的字符,避免浏览器解析错误)

   常用的HTML字符实体(建议使用实体):

常用的字符实体(不建议使用实体):

4. HTML基础规范—正确闭合HTML标签

自闭和标签和闭合标签应该按照要求书写。标签不要交叉嵌套。

如下的这几种写法不符合规范,应该严格禁止:

<!-- 错误:非自闭合标签没有结束标签 --><a href="demo.html" title="demo">simple
<!-- 错误:非自闭合标签使用自闭合标签的语法 --><a href="demo.html" title="demo" />
<!-- 错误:自闭合标签使用非自闭合标签的语法 --><img src="demo.png" alt="demo"></img>

当元素的起始标签和结束标签不在同一个元素的内容中时,则会出现交叉嵌套。应该严格禁止标签之间的交叉嵌套。

下面的例子中起始标签“<span>”在元素div的内容中,而结束标签“</span>”则在div元素的内容之外:

<!-- 错误: 起始标签“<span>”在元素div的内容中,结束标签“</span>”则在div元素的内容之外 --><div>foo <span>bar</div> baz</span>

一般通过编写层次缩进良好的HTML代码能够最大化避免出现这样交叉嵌套的错误代码。

5. HTML基础规范—停止使用不标准的标签和属性

标签没有实际的语义,仅仅是用于设置样式

不推荐使用单纯设置样式的标签,如:basefont、big、center、font等。应该通过CSS设置样式,让HTML标签功能更单一。不推荐的示例如下:

<!--不推荐代码:不推荐使用单纯设置样式的标签,应该通过CSS设置样式--><font color=blue>don‘t use it!</font><big>don‘t use it!</big><center>don‘t use it!</center>

不推荐在HTML标签中添加样式属性,如:iframeimginputdiv等标签中的align属性,body标签上的background属性,tdtr标签上的heightwidthnowrapbgcolorvalign等属性,iframe标签中的framebordermarginheightscrolling等属性。此类属性应该废弃,并通过添加CSS样式来实现相同的效果。不推荐的示例如下:

<!—不推荐代码:标签中添加border、width、height等样式属性--><img src=”#” alt=”demo” border=”1” width="194" height="37" /><div id="focusViwer" align=center> </div>

不推荐使用 <blink> 或<marquee> (闪动,滚动)。这两个标签的职能已经超出了HTML本身,并且也存在浏览器的兼容问题。以如今的审美来说,这两个标签实现的效果丑陋无比,如果一定要这样的效果,可以通过JavaScript代码来实现,并且效果会更好,如:可以使用jQuery Marquee插件 。不推荐的示例如下:

<!--不推荐代码:效果丑陋,并且存在浏览器兼容问题,不推荐使用,如果需要实现这样的效果,可以通过JavaScript代码来实现,并且效果会更好--><blink>don‘t use it!</blink><marquee scrollamount=3 scrolldelay=100 >don‘t use it</marquee>

6. HTML基础规范—其他

   书写链接地址时, 必须避免重定向,例如:href=”http://baidu.com/”, 即须在URL地址后面加上“/”;

引入JS库文件, 文件名须包含库名称及版本号及是否为压缩版, 比如jquery-1.4.1.min.js; 引入插件, 文件名格式为库名称+插件名称, 比如jQuery.cookie.js;

能以背景形式呈现的图片,尽量写入css样式中;

书写过程中,考虑向后扩展性。

原文地址:https://www.cnblogs.com/chenqilin-516/p/10328444.html

时间: 2024-08-30 10:08:26

HTML规范(基于HTML5)的相关文章

基于HTML5的燃气3D培训仿真系统

最近上线了的基于HTML5的燃气3D培训仿真系统,以前的老系统是采用基于C++和OpenGL的OpenSceneGraph引擎设计的,OSG引擎性能和渲染效果各方面还是不错的,但因为这次新产品需求要求能运行多移动终端,多年前基于MFC封装OSG的老系统架构也实在该退休了,这年头找能维护MFC这种古董级GUI的靠谱人也非易事. 系统最终采用HT for Web的3D框架实现,项目中的程序员也很高兴有这样的机会终于摆脱维护MFC老系统的宿命,虽然大家都只有C++的开发经验,对HTML/CSS/JS并

基于 HTML5 的数据存储

以前想做个静态网页APP.最初的思路是用本地文件存储数据,后来发现在手机上运行时,文件无法找到. 经过了长达几个月的搜索(实际也就几天),没有找到合适的方法. 就在绝望的时候,无意间搜到基于HTML5的各种保存数据的方法.在此简单与大家分享一下. 前四种是从http://www.hightopo.com/blog/344.html截取. Cookie 最古老的存储方式为Cookie,这种存储方式存储内容很有限,只适合做简单信息存储,存取接口设计得极其反人类,为了介绍HTML5存储方案的完整性我顺

分享一个基于HTML5实现的视频播放器

什么是hivideo? 最近一段时间在使用PhoneGap开发一个App应用,App需要播放视频,本想直接使用html5的video,但使用它在全屏播放时不支持横屏播放,只能放弃.最终决定还是自己封装一个播放器算了,免得以后要扩展功能麻烦. 最近迷上hi这个单词,所以我给这个播放器取名叫做:hivideo. hivideo是一款基于html5的视频播放器,摒弃video原有的播放控制条样式,自己重写了一次.支持暂停.播放进度控制.声音控制.全屏播放.如果是要在手机端使用hivideo,全屏播放时

基于HTML5 Canvas实现的图片马赛克模糊特效

效果请点击下面网址: http://hovertree.com/texiao/html5/1.htm 一.开门见山受美国肖像画家Chuck Close的启发,此脚本通过使用HTML5 canvas元素把图像转换成像素形式,这基本上是一个为canvas imageData功能的简单演示. 此脚本现存于GitHub上,您可以在那里下载到脚本和示例.在GitHub上查看像素化资源 二.选项此方法接受一个对象数组,每个对象都拥有一组选项.resolution : 渲染像素间的像素距离,必须的.shape

分享一个基于HTML5实现的视频播放器【转】

什么是hivideo? 最近一段时间在使用PhoneGap开发一个App应用,App需要播放视频,本想直接使用html5的video,但使用它在全屏播放时不支持横屏播放,只能放弃.最终决定还是自己封装一个播放器算了,免得以后要扩展功能麻烦. 最近迷上hi这个单词,所以我给这个播放器取名叫做:hivideo. hivideo是一款基于html5的视频播放器,摒弃video原有的播放控制条样式,自己重写了一次.支持暂停.播放进度控制.声音控制.全屏播放.如果是要在手机端使用hivideo,全屏播放时

HT for Web基于HTML5的图像操作(二)

上篇介绍了HT for Web采用HTML5 Canvas的getImageData和setImageData函数,通过颜色乘积实现的染色效果,本文将再次介绍另一种更为高效的实现方式,当然要实现的功能效果是完全一样的.这次我们依然基于HTML5技术,但采用Canvas的globalCompositeOperation属性进行各种blending效果: 各种globalCompositeOperation效果可参考https://developer.mozilla.org/en-US/docs/W

基于HTML5的Web SCADA工控移动应用

在电力.油田燃气.供水管网等工业自动化领域Web SCADA的概念已经提出了多年,早先年的Web SCADA前端技术大部分还是基于Flex.Silverlight甚至Applet这样的重客户端方案,在HTML5流行前VML和SVG算是真正纯种Web方案也是有不少应用,近些年随着HTML5的流行,加上移动终端对HTML5支持的普及,越来越多新项目开始采用真正纯HTML5的方案,更具体的说大数据量应用性能高于SVG的Canvas方案,已经逐渐成为当今Web SCADA前端技术的首选标配方案. htt

基于Html5的智能家居手机客户端设计(一)——找到openhab的rest

今天开始我的毕业设计,基于HTML5的智能家居手机客户端设计.挑剔了好久,终于找到我可以使用国外开源项目智能家居核心,通过restful(我也不是很懂,毕竟我只是电子信息学院爱好网络). REST描述了一个架构样式的网络系统,比如 web 应用程序.在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量

基于HTML5的开源图标库-ECharts

ECharts: 来自百度商业前端数据可视化团队,基于html5 Canvas,纯Javascript图表库,底层依赖ZRender,商业产品常用图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算.数据视图.值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘.整合的能力.图表类型支持折线图(区域图).柱状图(条状图).散点图(气泡图).K线图.饼图(环形图).雷达图(填充雷达图).和弦图.力导向布局图.地图,同时支持任意维度的堆积和多图表混合展现. 链接是:h

localStorage存值取值以及存取JSON,以及基于html5 localStorage的购物车

http://blog.csdn.net/u013267266/article/details/51530611 localStorage.setItem("key","value");//存储变量名为key,值为value的变量 localStorage.key = "value"//存储变量名为key,值为value的变量 localStorage.getItem("key");//获取存储的变量key的值www.it16