HTML5技术

***网Web前端开发规范(初稿) - 一半水一半冰

字号+ 作者:H5之家 来源:H5之家 2017-01-18 10:00 我要评论( )

这几天一直在梳理关于前端方面的开发规范,现在暂时梳理了HTML的开发规范,暂且放置于此! 规范目的:使开发流程更加规范化文件命名规范:(需审批)1.项目命名 全部采用小写方式, 以下划线分隔。 例:my_project_name2.目录命名 参照项目命名规则; 有复数结

这几天一直在梳理关于前端方面的开发规范,现在暂时梳理了HTML的开发规范,暂且放置于此!

规范目的: 使开发流程更加规范化 文件命名规范:(需审批) 1.项目命名 全部采用小写方式, 以下划线分隔。 例:my_project_name 2.目录命名 参照项目命名规则; 有复数结构时,要采用复数命名法。 例:scripts, styles, images, data_models 3.HTML,CSS, SCSS,JS文件命名 参照项目命名规则。 例:error_report.html 4.一些浏览器会将含有这些词的作为广告拦截,文件命名、ID、CLASS等所有命名避免以上词汇。 `ad`、`ads`、`adv`、`banner`、`sponsor`、`gg`、`guangg`、`guanggao`等 HTML规范 通用规范: 1. DOCTYPE [强制] 使用 HTML5 的 doctype 来启用标准模式,建议使用大写的 DOCTYPE。

示例:

<!DOCTYPE html>

[建议] 启用 IE Edge 模式。

示例:

[建议] 在 html 标签上设置正确的 lang 属性。

解释:

有助于提高页面的可访问性,如:让语音合成工具确定其所应该采用的发音,令翻译工具确定其翻译语言等。

示例:

2. 编码 [强制] 页面必须使用精简形式,明确指定字符编码。指定字符编码的 meta 必须是 head 的第一个直接子元素。

示例:

...... </head> <body> ...... </body> </html>

[建议] HTML 文件使用无 BOM 的 UTF-8 编码。

解释:

UTF-8 编码具有更广泛的适应性。BOM 在使用程序或工具处理文件时可能造成不必要的干扰。

3. CSS 和 JavaScript 引入 [强制] 引入 CSS 时必须指明。

示例:

[建议] 引入 CSS 和 JavaScript 时无须指明 type 属性。

解释:

text/css 和 text/javascript 是 type 的默认值。

[建议] 展现定义放置于外部 CSS 中,行为定义放置于外部 JavaScript 中。

解释:

结构-样式-行为的代码分离,对于提高代码的可阅读性和维护性都有好处。

[建议] 在 head 中引入页面需要的所有 CSS 资源。

解释:

在页面渲染的过程中,新的CSS可能导致元素的样式重新计算和绘制,页面闪烁。

[建议] JavaScript 应当放在页面末尾,或采用异步加载。

解释:

将 script 放在页面中间将阻断页面的渲染。出于性能方面的考虑,如非必要,请遵守此条建议。

示例:

[建议] 移动环境或只针对现代浏览器设计的 Web 应用,如果引用外部资源的 URL 协议部分与页面相同,建议省略协议前缀。

解释:

使用 protocol-relative URL 引入 CSS,在 IE7/8 下,会发两次请求。是否使用 protocol-relative URL 应充分考虑页面针对的环境。

示例:

HTML书写规范: 1. 缩进与换行 [强制] 使用 4 个空格做为一个缩进层级。

解释: 对于非 HTML 标签之间的缩进,比如 script 或 style 标签内容缩进,与 script 或 style 标签的缩进同级。

示例:

<style> /* 样式内容的第一级缩进与所属的 style 标签对齐 */ ul first([.

2. 命名 [强制] class 必须单词全字母小写,单词间以 - 分隔。 [强制] class 必须代表相应模块或部件的内容或功能,不得以样式信息进行命名。

示例:

[强制] 元素 id 必须保证页面唯一。 [强制] id用J开头下划线连接小驼峰. 如: id="J_autoCenter" [强制] 禁止为了 hook 脚本,创建无样式信息的 class。

解释:

不允许 class 只用于让 JavaScript 选择某些元素,class 应该具有明确的语义和样式。否则容易导致 CSS class 泛滥。

使用 id、属性选择作为 hook 是更好的方式。

[强制] 同一页面,应避免使用相同的 name 与 id。

解释:

IE 浏览器会混淆元素的 id 和 name 属性, document.getElementById 可能获得不期望的元素。所以在对元素的 id 与 name 属性的命名需要非常小心。

一个比较好的实践是,为 id 和 name 使用不同的命名法。

示例:

(

3. 标签 [强制] 标签名必须使用小写字母。

示例:

Hello StyleGuide!</P>

[强制] 对于无需自闭合的标签,不允许自闭合。

解释:

常见无需自闭合标签有 input、br、img、hr 等。

示例:

[强制] 对 HTML5 中规定允许省略的闭合标签,不允许省略闭合标签。

解释:

对代码体积要求非常严苛的场景,可以例外。比如:第三方页面使用的投放系统。

示例:

firstfirst <li>second </ul>

[强制] 标签使用必须符合标签嵌套规则。

解释:

比如 div 不得置于 p 中,tbody 必须置于 table 中。

[建议] HTML 标签的使用应该遵循标签的语义。

解释:

下面是常见标签语义

p - 段落

h1,h2,h3,h4,h5,h6 - 层级标题

strong,em - 强调

ins - 插入

del - 删除

abbr - 缩写

code - 代码标识

cite - 引述来源作品的标题

q - 引用

blockquote - 一段或长篇引用

ul - 无序列表

ol - 有序列表

dl,dt,dd - 定义列表

示例:

Esprima serves as an important building block</span> for some JavaScript language tools.</div>

[建议] 在 CSS 可以实现相同需求的情况下不得使用表格进行布局。

解释:

在兼容性允许的情况下应尽量保持语义正确性。对网格对齐和拉伸性有严格要求的场景允许例外,如多列复杂表单。

[建议] 标签的使用应尽量简洁,减少不必要的标签。

示例:

4. 属性 [强制] 属性名必须使用小写字母。

示例:

......</table>

[强制] 属性值必须用双引号包围。

解释:

不允许使用单引号,不允许不使用引号。

示例:

[建议] 布尔类型的属性,建议不添加属性值。

示例:

[建议] 自定义属性建议以 xxx- 为前缀,推荐使用 data-。

解释:

使用前缀有助于区分自定义属性和标准定义的属性。

示例:

head 1.title [强制] 页面必须包含 title 标签声明标题。 [强制] title 必须作为 head 的直接子元素,并紧随 charset 声明之后。

解释:

title 中如果包含 ASCII 之外的字符,浏览器需要知道字符编码类型才能进行解码,否则可能导致乱码。

示例:

页面标题</title> </head>

2. favicon [强制] 保证 favicon 可访问。

解释:

在未指定 favicon 时,大多数浏览器会请求 Web Server 根目录下的 favicon.ico 。为了保证 favicon 可访问,避免 404,必须遵循以下两种方法之一:

在 Web Server 根目录放置 favicon.ico 文件。

使用 link 指定 favicon。

示例:

3. viewport [建议] 若页面欲对移动设备友好,需指定页面的 viewport。

解释:

viewport meta tag 可以设置可视区域的宽度和初始缩放大小,避免在移动设备上出现页面展示不正常。

比如,在页面宽度小于 980px 时,若需 iOS 设备友好,应当设置 viewport 的 width 值来适应你的页面宽度。

同时因为不同移动设备分辨率不同,在设置时,应当使用 device-width 和 device-height 变量。

另外,为了使 viewport 正常工作,在页面内容样式布局设计上也要做相应调整,如避免绝对定位等。

4. meta标签

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 读书笔记:《HTML5开发手册》Web表单 - 绿岛之北

    读书笔记:《HTML5开发手册》Web表单 - 绿岛之北

    2017-01-14 15:04

  • 读书笔记:《HTML5开发手册》--现有元素的变化 - 绿岛之北

    读书笔记:《HTML5开发手册》--现有元素的变化 - 绿岛之北

    2017-01-14 10:02

  • 前端工程自动化构建总结 - bjtqti

    前端工程自动化构建总结 - bjtqti

    2017-01-10 15:00

  • 一个想法:成立草根技术联盟对开发人员进行技术定级解决企业员工招聘难问题! - 路过秋天

    一个想法:成立草根技术联盟对开发人员进行技术定级解决企业员工招聘

    2017-01-08 10:00

网友点评