文档类型
在每一个html页面的第一行添加标准模式的声明,必须使用
语言属性
必须为html根元素制定lang属性,从而为文档设置正确的语言。这将有助于语音合成工具确定其所应该采用的发音,有助于翻译工具确定其翻译时所应遵守的规则等
区分浏览器
参照以下写法
这样写的好处:
- 可以使用class作为全局条件区分低版本的IE浏览器并进行调整,这显然要优于使用CSS Hack
- 可以避免IE6条件注释引起的高版本IE文件阻塞问题,原文的解决方法是在前面加一个空白的条件注释,但是这里显然将原本无用空白的条件注释变得有意义了
- 仍然可以通过HTML验证
- 与Modernizr等特征检测类库使用相同的class,更具备通用性
兼容属性
IE 支持通过特定的标签来确定绘制当前页面所应该采用的 IE 版本。除非有强烈的特殊需求,否则设置为
edge mode
,从而通知 IE 采用其所支持的最新的模式
字符编码
所有标记都应设置为utf–8
,它应该同时指定在HTTP报头和文档头部
文档描述
为了更好让搜索引擎找到你的页面,必须写上keywords
和description
页面title
必须给每个页面加上有意义的标题
HTML5 standardization
type属性:省略
将样式表和脚本中的type省略,除非你不是用的css
或javascript
,在html5,该值默认是text/css
和text/javascript
关注点分离
将结构(markup)、表现样式(style)和行为动作(script)分开处理,尽量使三者之间的关联度降到最小,这样有利于维护
- 必须将css文件引入并置于head中
- 必须将js文件引入并置于body底部 ###大小写:只使用小写 所有的代码都应是小写的,包括元素名称、属性,属性值(除非text或CDATA的内容)、选择器、css属性、属性值(字符串除外)
Homecolor: #E5E5E5;color: #e5e5e5;
缩进
每次缩进使用4个空格不要使用Tab
.example { color: blue;} - Fantastic
- Great
减少嵌套
尽可能减少嵌套,减少不必要的标签,如果结构可以满足上下文要求,就不需要有冗余的结构
testtesttesttest
标签嵌套规则
1.块级元素 address、blockquote、center、dir、div、dl、dt、dd、fieldset、form、h1~h6、hr、isindex、menu、noframes、noscript、ol、p、pre、table、ul
2.内嵌元素 a、abbr、acronym、b、bdo、big、br、cite、code、 dfn、em、font、i、img、input、kbd、label、q、s、samp、select、small、span、strike、 strong、sub、sup、textarea、tt、u、var
嵌套规则
1. 块元素可以包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素:
—— 对 —— 对 —— 错
2. 块级元素不能放在里面:
—— 错 —— 错
3. 有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素,这几个特殊的标签是:
h1、h2、h3、h4、h5、h6、p、dt
4. 块级元素与块级元素并列、内嵌元素与内嵌元素并列:
—— 对 —— 对 —— 错
1.2代码规范
注释
- 单行注释,需在``前空一格
- 多行注释,注释起始和结尾都另起一行,注释内容缩进4个空格,不要使用Tab
This is a comment
HTML有效性验证
使用有效的html标签,并利用工具如W3C html validator进行检查
Demo This is a demo.Demo This is a demo.
语义性
根据标签的语义来合理使用它 如使用footer
元素来定义页脚,section
元素来定义文档中的章节 这对代码的执行效率和可读性都非常重要
Journey
One day you finally knew what you had to do, and began.
Journey
One day you finally knew what you had to do, and began.
HTML5 data-* 自定义属性
添加属性的时候需要去掉前缀data-*,-后为一个单词小写.如下
Click Here
字符实体引用
为了良好的阅读性,不要使用实体引用的方式,除了以下几种情况:
- 键盘上没有该字符
- 在HTML中有特殊含义的字符,如:
<
,>
,&
- 空格
常用HTML字符实体(建议使用实体):
字符 | 名称 | 实体名 | 实体数 |
---|---|---|---|
" | 双引号 | " |
" |
' | 撇号 | ' (IE不支持) |
' |
& | 和号 | & |
& |
> | 右尖括号(大于号) | > |
> |
< | 左尖括号(小于号) | < |
< |
空格 | |
|
|
中文全角空格 | |
常用特殊字符实体(不建议使用实体):
字符 | 名称 | 实体名 | 实体数 |
---|---|---|---|
¥ | 元 | ¥ |
¥ |
断竖线 | ¦ |
||
© | 版权 | © |
© |
® | 注册商标R | ® |
® |
™ | 商标TM | ™ |
™ |
• | 间隔符 | · |
· |
« | 左双尖括号 | « |
« |
» | 右双尖括号 | » |
» |
° | 度 | ° |
° |
× | 乘 | × |
× |
÷ | 除 | ÷ |
÷ |
‰ | 千分比 | ‰ |
‰ |
图片和颜色
- 给图片添加
width
和height
,提升页面加载速度 - 给所有
img
添加alt
属性 - 不要使用或尽量少用
gif
文件
避免长句
在IDE中,需要去来回拖动滚动条来查看末尾的代码是很不方便的,所以要在合适的位置来断句。
无内容元素
无内容元素是一种不能包含任何内容的特殊元素,比较常见的无内容元素有:br
,hr
,img
,input
,link
,meta
此类元素不要使用无闭合标签,且在>
前无空格