给HTML初学者的三十条最佳实践

1.保持标签闭合

以前,经常见到类似下面的代码(译注:这是多久以前啊……):

<li>Some text here.
<li>Some new text here.
<li>You get the idea.

注意外面包裹的UL/OL标签被遗漏了(谁知是故意还是无意的),而且还忘记了关闭LI标签。按今天的标准来看,这是很明显的糟糕做法,应该100%避免。总之,保持闭合标签。否则,你验证html标签的时候可能遇到问题。

更好的方式

<ul>
  <li>Some text here. </li>
  <li>Some new text here. </li>
  <li>You get the idea. </li>
</ul> 

2.声明正确的文档类型

笔者早先曾加入过许多CSS论坛,每当用户遇到问题,我们会建议他首先做两件事:

1. 验证CSS文件,保证没有错误。

2. 确认添加了正确的doctype

DOCTYPE 出现在HTML标签之前,它告诉浏览器这个页面包含的是HTML,XHTML,还是两者混合,这样浏览器才能正确解析。

通常有四种文档类型可供选择:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>

关于该使用什么样的文档类型声明,一直有不同的说法。通常认为使用最严格的声明是最佳选择,但研究表明,大部分浏览器会使用普通的方式解析这种声明,所以很多人选择使用HTML4.01标准。选择声明的底线是,它是不是真的适合你,所以你要综合考虑来选择适合你得项目的声明。

3.永远不要使用内联样式

当你在埋头写代码时,可能会经常顺手或偷懒的加上一点行内css代码,就像这样:

<p style="color: red;">I‘m going to make this text red so that it really stands out and makes people take notice! </p>  

这样看起来即方便又没有问题。然而,这在你的编码实践中是个错误。

在你写代码时,在内容结构完成之前最好不要加入样式代码。

这样的编码方式就像打游击,是一种很山寨的做法。——Chris Coyier

更好的做法是,完成标签部分后,再把这个P的样式定义在外部样式表文件里。

建议

#someElement > p {
  color: red;
}

4.将所有外部css文件放入head标签内

理论上讲,你可以在任何位置引入CSS样式表,但HTML规范建议在网页的head标记中引入,这样可以加快页面的渲染速度。

雅虎的开发过程中,我们发现,在head标签中引入样式表,会加快网页加载速度,因为这样可以使页面逐步渲染。 —— ySlow团队

<head>
<title>My Favorites Kinds of Corn</title>
<link rel="stylesheet" type="text/css" media="screen" href="path/to/file.css" />
<link rel="stylesheet" type="text/css" media="screen" href="path/to/anotherFile.css" />
</head>  

5.javascript文件放在底部

要记住一个原则,就是让页面以最快的速度呈现在用户面前。当加载一个脚本时,页面会暂停加载,直到脚本完全载入并执行完成。因此会浪费用户更多的时间。

如果你的JS文件只是要实现某些功能,(比如点击按钮事件),那就放心的在body底部引入它,这绝对是最佳的方法。

建议

<p>And now you know my favorite kinds of corn. </p>
<script type="text/javascript" src="path/to/file.js"></script>
<script type="text/javascript" src="path/to/anotherFile.js"></script>
</body>
</html> 

6.永远不要使用内联javascript。现在不是1996年了!

许多年以前,还存在一种这样的方式,就是直接将JS代码加入到HTML标签中。尤其是在简单的图片相册中非常常见。本质上讲,一个“onclick”事件是附加在 标签上的,其效果等同于一些JS代码。不需要讨论太多,非常不应该使用这样的方式,应该把代码转移到一个外部JS文件中,然后使用“ addEventListener / attachEvent ”加入事件监听器。或者使用jquery等框架,只需要使用“click”方法。

$(‘a#moreCornInfoLink‘).click(function() {
  alert(‘Want to learn more about corn?‘);
}); 

7.边开发,边验证

很多人并不真正理解标准验证的意义和价值,笔者在一篇博客中详细分析了这个问题。一句话,验证是为你服务的,不是给你找麻烦的。

如果你刚开始从事网页制作,那强烈建议你下载Web Developer Toolbar(chrome用户请自行在应用商店搜索,ie用户可能就杯具了) ,并在编码过程中随时使用”HTML标准验证”和“CSS标准验证”。如果你认为CSS是一种非常好学的语言,那么它会把你整的死去活来。你不严谨的代码会让你的页面漏洞百出,问题不断,一个好的方法就是—— 验证,验证,再验证。

8.下载firebug

Firebug是当之无愧的网页开发最佳插件,它不但可以调试JavaScript,还可以直观的让你了解页面标记的属性和位置。不用多说, 下载

9.使用firebug

据笔者观察,大部分的使用者仅仅使用了Firebug 20%的功能,那真是太浪费了,你不妨花几个小时的时间来系统学习这个工具,相信会让你事半功倍。

资源

10.保持标签名小写

理论上讲,html不区分大小写,你可以随意书写,例如:

<DIV>
<P>Here‘s an interesting fact about corn. </P>
</DIV>

但最好不要这样写,费力气输入大些字母没有任何用处,并且会让代码很难看.

建议

<div>
  <p>Here‘s an interesting fact about corn. </p>
</div> 

11.使用H1-H6标签

笔者建议你在网页中使用其中全部六种标记,虽然大部分人只会用到前四个,但使用最多的H会有很多好处,比如设备友好、搜索引擎友好等,不妨把你的P标签都替换成H6。

<h1>This is a really important corn fact! </h1>
<h6>Small, but still significant corn fact goes here. </h6>

12.写博客时,请将H1留给文章标题

今天笔者在Twitter上发起一次讨论:是该把H1定义到LOGO上还是定义到文章标题上,有80%的人选择了后者。

当然具体如何使用要看你的需求,但我建议你在建立博客的时候,将文章题目定为H1,这对搜索引擎优化(seo)是非常有好处的。

13.下载ySlow

在过去几年里,雅虎的团队在前端开发领域做了许多伟大的工作。前不久,它们发布了一个叫ySlow的Firebug扩展,它会分析你的网页,并返回 一个“成绩单”,上面细致分析了这个网页的方方面面,提出需要改进的地方,虽然它有点苛刻,但它绝对会对你有所帮助,强烈推荐—— ySlow!

14.使用无序列表(UL)包裹导航菜单

通常网站都会有导航菜单,你可以用这样的方式定义:

<div id="nav">
 <a href="#">Home </a>
  <a href="#">About </a>
  <a href="#">Contact </a>
</div>

如果你想书写优美的代码,那最好不要用这种方式。

为什么要用UL布局导航菜单? ——因为UL生来就是为定义列表准备的

最好这样定义:

<ul id="nav">
  <li><a href="#">Home</a></li>
  <li><a href="#">About</a></li>
  <li><a href="#">Contact</a></li>
</ul>  

15.学习如何应对IE

IE一直以来都是前端开发人员的噩梦!

如果你的CSS样式表基本定型了,那么可以为IE单独建立一个样式表,然后这样仅对IE生效:

<!--[if lt IE 7]>
   <link rel="stylesheet" type="text/css" media="screen" href="path/to/ie.css" />
<![endif]-->  

这些代码的意思是:如果用户浏览器是IE6及以下,那这段代码才会生效。如果你想把IE7也包含进来,那么就把“[if lt IE 7]”改为“[if lte IE 7]”。

16.选择合适的IDE

不论你是Windows还是Mac用户,这里都有很多优秀的编辑器供你选择:

Mac 用户

PC 用户

17.上线前,压缩代码

通过压缩您的CSS和Javascript文件,您可以减少总大小的25%左右,但在开发过程中不必压缩,然而,一旦网站完成后,利用一些网络压缩程序或多或少节省一些带宽。下面列出一些工具。

Javascript 压缩服务

CSS Compression Services

18.精简,精简,在精简

回望我们大多数人写的第一个页面,一定会发现严重的 “DIV癖”( divitis ),通常初学者的本能就是把一个段落用DIV包起来,然后为了控制定位而套上更多的DIV。—— 其实这是一种低效而有害的做法。

网页写完后,一定要多次回头检查,尽量的减少元素的数量。 能用UL布局的列表就不要用一个个的DIV去布局。

正如写文章的关键是“缩减,缩减,缩减”一样,写页面也要遵循这个标准。

19.给所有图片加上“alt”属性

为图片加上alt属性的好处是不言而喻的 —— 这样可以让禁用图片或者使用特殊设备的用户无障碍得了解你的王爷信息,并且对图像搜索引擎友好。

糟糕的做法

<IMG SRC="cornImage.jpg" />  

更好的做法

<img src="cornImage.jpg" alt="A corn field I visited." />  

20.通宵达旦

我经常不知不觉的学习工作到凌晨,我认为这是个很好的状况。

我的“啊~哈!”时间( “AH-HA” moments,指柳暗花明或豁然开朗的时刻)通常都发生在深夜,比如我彻底理解JavaScript的“闭包”概念,就是在这样一种情况下。如果你还没有感受过这种奇妙的时刻,那就马上试试吧!

21.查看源代码

没有什么比模仿你的偶像能让你更快的学习HTML。起初,我们都要甘做复印机,然后慢慢得发展自己的风格。研究你喜欢的网站页面代码,看看他们是怎么实现的。这是高手的必经之路,你一定要试一下。注意:只是学习和模仿他们的编码风格,而不是抄袭和照搬!

留意网络上各种炫酷的JavaScript效果,如果看上去是使用了插件,那根据它源码中head标签内的文件名,就可以找到这个插件名称,然后就可以学习它据为己用。

22.为所有的元素定义样式

这一条在你制作其他公司企业网站时尤为必要。你自己不使用blockquote标记?那用户可能会用,你自己不使用OL?用户也可能会。花时间做一个页面,显示出ul, ol, p, h1-h6, blockquotes, 等等元素的样式,检查一下是否有遗漏。

23.使用第三方服务

现在互联网上流行着许多可以免费加在网页中的API,这些工具非常强大。它可以帮你实现许多巧妙的功能,更重要的是可以帮你宣传网站。

24.掌握Photoshop

Photoshop是前端工程师的一个重要工具,如果你已经熟练掌握HTML和CSS,那不妨多学习一下Photshop。

  1. 观看Psdtuts+上的视频课程
  2. 花费每月25$注册成为Lynda.com的会员,海量精品课程。
  3. 推荐“You Suck at Photoshop”系列
  4. 花费几个小时记住尽可能多的PS快捷键。

25.学习每一个HTML标签

虽然有些HTML标签很少用到,但你依然应该了解他们。比如“abbr”、“cite”等,你必须学习它们以备不时之需。

顺便说下,如果你不熟悉上面两个标签,可以看下下面的解释:

  • abbr 和你估计的差不多,它是abbreviation的缩写(英语差的估计不到),“Blvd”能用<abbr>标签包裹,因为他是“boulevard”的缩写。(喜大普奔也可以喽)。
  • cite 被用来作为引用内容的标题(blockquote)。例如,如果你在你的博客中引用本篇文章,你可以将“给HTML初学者的三十条最佳实践”用<cite>包裹,注意它不应该被用来包裹引用的作者,这是常见的误区。

26.参与社区讨论

网络上有许许多多优秀的资源,而社区中也隐藏着许多高手,这里你既可以自学,也能请教经验丰富的开发者。

27.使用reset.css

Css Reset也就Reset Css ,就是重置一些HTML标签样式,或者说默认的样式。

关于是否应该使用CSS Reset,网上也有激烈的争论,笔者是建议使用的。你可以先选用一些成熟的CSS Reset,然后慢慢演变成适合自己的。

html, body, div, span,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
img, ins, kbd, q, s, samp,
small, strike, strong,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baselinebaseline;
    background: transparent;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: ‘‘;
    content: none;
}  

table {
    border-collapse: collapse;
    border-spacing: 0;
}

28.对齐元素

简单来说,你应该尽可能的对齐你的网页元素。可以观察一下你喜欢的网站,它们的LOGO、标题、图表、段落肯定是对得非常整齐的。否则就会显得混乱和不专业。

29.关于PSD切片

现在你已经掌握了HTML、CSS、Photoshop知识,那么你还需要学习如何把PSD转换为网页上的图片和背景,下面有两个不错的教程:

30.不要随意使用框架

Javascript和CSS都有许多优秀的框架,但如果你是初学者,不要急于使用它们。如果你还没能熟练的驾驭CSS,使用框架会混淆你的知识体系。尽管你可能能会说javascript和jQuery是可以同事学习的,但这对css并不适合。我个人提倡960 CSS 网格框架,并且我经常使用它。还是那句话,如果你是css的初学者,学习框架只会让你更加困惑。

时间: 2024-10-08 04:10:40

给HTML初学者的三十条最佳实践的相关文章

给javascript初学者的24条最佳实践

1.使用 === 代替 == JavaScript 使用2种不同的等值运算符:===|!== 和 ==|!=,在比较操作中使用前者是最佳实践. “如果两边的操作数具有相同的类型和值,===返回true,!==返回false.”——JavaScript:语言精粹 然而,当使用==和!=时,你可能会遇到类型不同的情况,这种情况下,操作数的类型会被强制转换成一样的再做比较,这可能不是你想要的结果. 2.Eval=邪恶 起初不太熟悉时,“eval”让我们能够访问JavaScript的编译器(译注:这看起

总结 React 组件的三种写法 及最佳实践

React 专注于 view 层,组件化则是 React 的基础,也是其核心理念之一,一个完整的应用将由一个个独立的组件拼装而成. 截至目前 React 已经更新到 v15.4.2,由于 ES6 的普及和不同业务场景的影响,我们会发现目前主要有三种创建 React 组件的写法:1. ES5写法React.createClass,2. ES6写法React.Component,3. 无状态的函数式写法(纯组件-SFC). 你们最钟爱哪种写法呢?萝卜青菜各有所爱~ 每个团队都有自己的代码规范和开发模

大数据管理:数据集成的技术、方法与最佳实践 读书笔记三

7.1 什么是数据仓库 数据仓库是基于特定的数据结构(以及有关应用程序)所构建的数据的中央存储库,以便为分析和报表提供 一致的数据源.面向整个组织创建的企业数据仓库(Enterprise Data Warehouse,EDW)用于对整个组织的信息 进行分析.大多数情况下,超大型组织中会有多个企业级数据仓库,每个都拥有组织中某个很大组成部分的数 据,如某个区域,或者很大的功能域.批处理数据集成方案通常用于将数据置入或者移出数据仓库.数据仓库架 构的设计要达到以下目的:为整个组织的分析提供一致可用的

&lt;&lt;软件需求最佳实践------SERU过程框架原理与应用&gt;&gt;读书笔记一(全书浅览)

这一学期上了软件需求分析这门课,在老师的建议下自己选择了这本需求最佳实践作为精读课本.大概的阅览了整本书后发现,作者引用各种实例与隐喻意图让读者更好的理解这本书的内容,而且每一部分内容都有一条精炼的SERU诫语来作为一个小结.在我看来,这本书确实对于我们软件需求分析的初学者来说确实是不可多得的“良本“. 全书分为三大部分,其中第一部分:“原理.模型与误区“涵盖前三章的内容.这部分作者主要分析并提及了影响软件项目实施,并导致软件出现“危机”的根本原因,即需求分析阶段. 主要是让我们认识到软件需求在

RHCS集群理论暨最佳实践

RHCS集群理论暨 最佳实践 什么是集群?     集群是一组(>2)相互独立的,通过高速网络互联的计算机组成的集合.群集一般可以分为科学集群,负载均衡集群,高可用性集群三大类.     科学集群是并行计算的基础.它对外就好象一个超级计算机,这种计算机内部由十至上万个独立处理器组成,并且在公共消息传递层上进行通信以运行并发应用程序,像中国的银河,曙光超级计算机.     高可用性集群,当集群中的一个系统发生故障时,集群软件迅速作出反应,将该系统的任务分配至集群中其它正在工作的系统上执行,通过消除

《开源安全运维平台-OSSIM最佳实践》已经上市

<开源安全运维平台-OSSIM最佳实践>已上市 经多年潜心研究开源技术,历时三年创作的<开源安全运维平台OSSIM最佳实践>一书即将出版.该书用100多万字记录了作者10多年的OSSIM研究应用成果,重点展示了开源安全管理平台OSSIM在大型企业网运维管理中的实践.国内目前也有各式各样的运维系统,经过笔者对比分析得出这些工具无论在功能上.性能上还是在安全和稳定性易用性上都无法跟OSSIM系统想媲美,而且很多国内的开源安全运维项目在发布几年后就逐步淡出了舞台,而OSSIM持续发展了十

UI实时预览最佳实践(转)

UI实时预览最佳实践 概要:Android中实时预览UI和编写UI的各种技巧.本文的例子都可以在结尾处的示例代码中看到并下载.如果喜欢请star,如果觉得有纰漏请提交issue,如果你有更好的点子可以提交pull request.本文的代码主要是基于作者的实际经验编写的,如果你有其他的技巧和方法也可以参与进来一起完善此文. 文章固定连接:https://github.com/tianzhijiexian/Android-Best-Practices/blob/master/2015.9/ui/u

CSS 布局:40个教程、技巧、例子和最佳实践

前言: 布局是WEB开发一个重要的课题,进入XHTML/CSS后,使用TABLE布局的方式逐渐淡出,CSS布局以众多优点成为主流,本文将介绍40个基于CSS的web布局的资源和教程.文章的出处在hl.文中的不少的例子在一本经典的CSS书籍<CCS: The Missing Manual, 2nd Edition>中都可以找到,据我所知,第二版在中国没有翻译出版.你可以从这里下载英文版(不过需要注册个用户名) 正文 基于CSS的布局能提供更灵活布局方式和更强的用户视觉体验.一些重要技巧和关键点可

移动App测试实战:顶级互联网企业软件测试和质量提升最佳实践

这篇是计算机类的优质预售推荐>>>><移动App测试实战:顶级互联网企业软件测试和质量提升最佳实践> 国内顶级互联网公司测试实战经验总结,阿里.腾讯.京东.携程.百度等公司多位测试专家联袂推荐 编辑推荐 从移动互联网产品测试的准备工作到产品发布后的质量管理方法,涉及移动产品的整个研发流程,呈移动App开发与测试人员的必备参考 内容简介 本书由三位国内顶级互联网企业软件测试工程师联手打造,根据移动产品的特点,深入讲解了移动App测试的最佳实践,从移动互联网产品测试的准备工