前端代码标准最佳实践:HTML篇

简介:

Web前端代码中,HTML是根本,CSS和JavaScript也是围绕着既有的HTML结构来构建,所以良好的HTML代码结构,除了提高了HTML代码的可读性,可维护性和执行性能之外,也可以让相对应的CSS和JavaScript代码更好的构建。距前面两篇探讨JavaScript(前端代码标准最佳实践:JavaScript篇)和CSS(前端代码标准最佳实践:CSS篇)之后,我们今天来探讨Web前端HTML的一些最佳实践。

(1)HTML代码的基本规范 1. HTML的命名和格式

任何代码的混乱都是从命名和格式的混乱开始的,所以一定要有统一和规范的命名和格式,以下是一些基本的规范。

HTML代码所有的标签名和属性应该都为小写,虽然HTML代码是大小写不敏感的,但是W3c的规范建议为小写;属性值应该用双引号包括。

给所有的关键元素定义元素的id和class,便于和CSS,JavaScript的交互;id名称中的关键词用下划线(_)连接,class的关键词用中划线(-)连接,根据实际的意义和Dom树的层级关系定义合适的名称。

HTML代码的层级缩进为4个空格;值为空的元素定义应该单独占用一行;包含子元素的元素的起始标签和闭合标签分别单独占用一行。

例子:

 
  1. <div id="info_container" class="info-container"> 
  2.     <div class="container-top"></div> 
  3.     <article> 
  4.          ... 
  5.     </article> 
  6.     <div class="container-bottom"></div> 
  7. </div> 

2 CSS代码和HTML代码分离

样式可以直接写在标签的style属性里面,也可以写在页面head区域的style标签里面,这两种方式都是不好的方式,尤其第一种方式。应该把样式单独写到css样式文件中,方便代码的重用和维护。

3. 写标准的HTML代码

所有的HTML标签应该正确闭合;所有的元素定义都要有起始和闭合标签,即使元素的值为空,除了如下这些标签,如下的标签是可以自闭合:<br/><hr/><input/><img/>等。

停止规范不支持的标签,如下的标签规范已经不推荐使用,尽管浏览器可以正确的解析:<center><font><s><strike><u><menu>等。

停止使用规范不支持的属性,如下的属性已经不推荐使用:body的background属性,某些标签的align属性,td和th上的nowrap属性,某些标签的width和height属性等。其实这些规范不推荐的标签和属性都是一些影响外观的标签和属性,都可以通过CSS样式来设置。

应该经常验证代码的标准性,可以使用w3c提供的验证工具:Unicorn

(2)高可读性的HTML代码

1. 合适的地方用合适的标签

HTML代码不是纯粹为了让浏览器展现,也需要良好的可读性,方便代码的检查和维护,更重要的是各种搜索引擎也能更好地识别页面内容,所以要写有语义的HTML代码,即经常提到的HTML标签语义化。

div和span是两个典型的没有任何语义的标签,所以使用这两个标签之前先确认,是否有更具有语义的标签可以代替。

<h1>~<h6>

h1到h6是作为标题的,h1是最高级别的标题,网页中显示标题的地方应该使用这些标题标签。

<em>和<strong>

这两个标签的语义是强调和重点强调,代替了没有任何语义的标签<i>和<b>。

<table>

table标签最早是经常用于布局,至今还有大量的页面是由table来布局的,table布局遭到了前端工程师们的一致唾弃,使得很多新手不敢使用这个标签了,这里要强调的是table的语义是表格,如果需要列出一些统计数据等,table标签是首选。

<ul>,<ol>,<li>

<ul>是无序列表,<ol>是有序列表,所以网页的导航菜单最合适用ul,而一些有序的列表,比如章节列表等,则应该用ol标签。

不好的例子:

 
  1. <div class="title">文章标题</div> 
  2.  
  3. <p> 
  4. 正文内容,<b>需要强调的内容</b> 
  5. </p> 
  6.  
  7. <div class="main-menu"> 
  8.     <span>导航1</span> 
  9.     <span>导航2</span> 
  10.     <span>导航3</span> 
  11. </div> 

规范的例子:

 
  1. <h1>文章标题</h1> 
  2.  
  3. <p> 
  4. 正文内容,<strong>需要强调的内容</strong> 
  5. </p> 
  6.  
  7. <ul class="main-menu"> 
  8.     <li>导航1</li> 
  9.     <li>导航2</li> 
  10.     <li>导航3</li> 
  11. </ul> 

 

2. 给页面添加必要的meta

meta信息描述有关页面的信息,放在页面的head部分,用于搜索引擎更友好的识别。如下是常用的一些定义:

 
  1. <meta name="author" content="John Doe"> 
  2. <meta name="copyright" content="&copy; 1997 Acme Corp."> 
  3. <meta name="keywords" content="corporate,guidelines,cataloging"> 
  4. <meta name="date" content="1994-11-06T08:49:37+00:00"> 

3. 不要省略某些标签的属性

<img>标签的alt属性的作用是当图片不能正常显示的时候的替换文字,<a>标签的title属性可作为说明信息,并且当鼠标hover时显示为提示信息。

(3)高性能的HMTL代码

1. CSS文件在前,JavaScript文件在后,JavaScript代码放到页面底部

JavaScript文件的下载和解析会阻塞页面的加载,所以在head部分,CSS的引用写在前面,而JavaScript文件的引用写在后面;

另外script标签有两个属性async和defer,defer设置为true,则意味着此JavaScript文件滞后执行,不影响页面HTML的渲染,async是HTML5中新引入的属性,已经得到了大多数现代浏览器的支持,此属性设置为true意味着文件异步加载和执行。两个属性的区别是async下载完成后就会执行,而defer则会还是按照在页面的的次序来执行,所以下载和执行不一定会连续。可以根据实际的项目情况设置这两个属性,提高页面加载的速度。

2. 精简HTML代码

越精简的HTML代码,页面的传输的时间就会越短,页面的渲染的时间也会更快,相应的用户体验就会越好,所以很有必要精简页面加载的HTML代码。

页面的精简主要从如下几个地方入手:

删除多余标签

多余的标签大多是为了方便布局而加入的,例如如下的代码:

 
  1. <div> 
  2.     <ul> 
  3.         <li>item1</li> 
  4.         <li>item2</li> 
  5.         <li>item3</li> 
  6.     </ul> 
  7. </div> 

代码中最外层的div标签大部分情况下是没有必要,其内层的ul标签可以完全担当其作用,可以直接删除此标签,并适当调整ul的样式。

动态加载和渲染非关键区域

在页面中某些区域并不是用户重点关注的区域,例如页面的广告,一些统计信息等,此类内容可以等待页面关键区域加载后通过javascript代码动态加载和显示。

3. 谨慎使用iframe

iframe有两个缺点:1,iframe会阻塞主页面的Onload事件;2,iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载。使用iframe之前需要考虑这两个缺点。 
如果需要使用iframe,最好是通过javascript动态给iframe添加src属性值,这样可以可以绕开以上两个问题。

总结

以上是一些常见的HTML开发过程中要注意的地方,其实有关HTML还有很多细节的技巧,需要我们在实践中不断的总结。本文的目的在于抛砖引玉,让大家重视代码的可读性,可维护性,以及代码的性能,在开发的过程中有意识地去考虑这些问题,养成良好的编码习惯比熟悉某项开发技术更重要。



本文转自 powertoolsteam 51CTO博客,原文链接:http://blog.51cto.com/powertoolsteam/975187,如需转载请自行联系原作者

相关文章
|
10天前
|
编解码 前端开发 JavaScript
Web 前端开发中的最佳实践
本文将介绍 Web 前端开发中的最佳实践,包括代码组织、性能优化、响应式设计和用户体验等方面。通过遵循这些实践,开发人员可以提高开发效率,优化用户体验,并减少潜在的问题和错误。
|
11天前
|
前端开发 小程序 Java
uniapp上传图片 前端以及java后端代码实现
uniapp上传图片 前端以及java后端代码实现
27 0
|
14天前
|
缓存 前端开发
前端代码整洁与规范之CSS篇
【4月更文挑战第2天】 前端代码整洁与规范之CSS篇
35 4
|
1天前
|
前端开发
HTML代码示例
HTML代码示例
9 1
|
1天前
|
搜索推荐
当使用HTML代码时,一些常见的问题
当使用HTML代码时,一些常见的问题
6 0
|
2天前
错误或拦截页面的html代码
错误或拦截页面的html代码
3 0
错误或拦截页面的html代码
|
3天前
|
前端开发 JavaScript 算法
比较流行的前端代码书写规范都有哪些
【4月更文挑战第13天】前端代码规范增进代码可读性和团队协作,包括缩进(用2空格)、命名(变量 camelCase,常量 MY_CONSTANT,类 PascalCase)、注释、语句与表达式、错误处理、代码复用。文件命名规范涉及扩展名、目录结构、简洁文件名、入口文件和配置文件命名。遵循这些规范能提高代码一致性,但需按项目需求调整。不断学习新规范以适应前端技术发展。
9 1
|
3天前
|
前端开发 搜索推荐 数据安全/隐私保护
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
13 1
|
5天前
|
监控 前端开发 JavaScript
如何使用浏览器调试前端代码?
【4月更文挑战第11天】前端开发中,浏览器调试是关键技能,能提升代码质量。本文介绍了如何使用浏览器的调试工具:1) 打开调试窗口(F12或右键检查);2) Elements标签页检查DOM结构和样式;3) Console调试JavaScript,查看日志和错误信息;4) Sources设置断点调试JS文件;5) 利用Network、Performance和Memory等标签页优化性能。熟悉调试工具、利用日志和错误信息能有效定位问题,提高开发效率。
16 7
|
26天前
|
移动开发 前端开发 HTML5
Web前端全栈HTML5通向大神之路
本套课程共三大阶段,六大部分,是WEB前端、混合开发与全栈开发必须要掌握的技能,从基础到实践,是从编程小白成长为全栈大神的最佳教程!
33 3
Web前端全栈HTML5通向大神之路