【HTML规范】:


【一】、代码规范:

[1]DOCTYPE声明

—HTML文件必须加上DOCTYPE声明,并统一使用HTML5的文档声明;

<!DOCTYPE html> 

[2]页面语言LANG

—zh-CN(中国大陆)–浏览器和操作系统的兼容性较好;

<html lang="zh-CN">

[3]CHARSET

—HTML5中默认的字符编码是UTF-8,请尽量统一写成标准的’UTF-8’,而不要写成’utf-8’或’utf8’或’UTF8’;

<meta charset="UTF-8">

[4]元素及标签闭合

—所有的开始标签和结束标签的元素都要写上起止标签,某些允许省略开始标签和结束标签的元素亦要写上;

—空元素标签都不加’/’字符

推荐写法:

<div>
<h1>我是h1标签</h1>
<p>我是一段文字,有始有终,浏览器能正确解析</p>
</div>
<br>

[5]书写风格

—(1)HTML代码大小写—HTML标签名、类名、标签属性和大部分属性值统一用小写;

—(2)类型属性—不需要为CSS、JSz制定类型属性,HTML5中默认已包含;

推荐:

<link rel="stylesheet" href="">
<script src=""></script>

—(3)元素属性—元素属性值使用双引号语法,且属性值可以写上的都写上;

推荐:

<input type="text">
<input type="radio" name="name" checked="checked">

不推荐:

<input type='text'>
<input type='radio' name="name" checked>

—(3) 特殊字符引用—在html中不能使用小于号和大于号特殊字符,浏览器会将它们作为标签解析,若要正确显示,在html源代码中要使用字符实体;

—(4)代码缩进—统一使用四个空格进行代码缩进,使得各编辑器表现一致(各编辑器有相关配置);

—(5)纯数字输入

 推荐使用:<input type="tel">   tel---定义用于电话号码的数字字段

 不推荐使用:<input type="number">  number---定义带有spinner空间的数字字段

—(6)代码嵌套–每个块状元素独立一行,内联元素可选;段落元素与标题元素只能嵌套内联元素;

【二】、注释规范

[1]单行注释

— 一般用于简单的描述,如某些状态描述,属性描述等; — 注释内容前后各一个空格字符,注释位于要注释代码的上面,单独占一行;

[2]多行注释

— 一般用于描述模块的名称一级模块开始与结束的位置;

— 注释内容前后各一个空格字符;

— 模块与模块之间相隔一行;

 <!-- S Comment Text --> 表示模块开始,
 <!-- E Comment Text --> 表示模块结束,

[3]嵌套模块注释

推荐使用:

<!-- S Comment Text A -->
<div class="mod_a">
<div class="mod_b">
   ...
</div>
<!-- /mod_b -->
<div class="mod_c">
    ...
</div>
<!-- /mod_c -->
 </div>
 <!-- E Comment Text A -->

【二】、文件规范

[1] HTML5标准模板

<!DOCTYPE html>
<html lang="zh-CN">
    <head>
         <meta charset="UTF-8">
         <title>HTML5标准模版</title>
    </head>
    <body>
    </body>
</html>

[2]移动端模板

 <!DOCTYPE html>
<html lang="zh-CN">
    <head>
       <meta charset="UTF-8">
       <meta name="viewport" content="width=device-width, initial-scale=1.0,  maximum-scale=1.0, user-scalable=no, shrink-to-fit=no" >
       <meta name="format-detection" content="telephone=no" >
       <title>移动端HTML模版</title>
       <!-- S DNS预解析 -->
       <link rel="dns-prefetch" href="">
       <!-- E DNS预解析 --> 
       <!-- S 线上样式页面片,开发请直接取消注释引用 -->
       <!-- #include virtual="" -->
       <!-- E 线上样式页面片 -->
       <!-- S 本地调试,根据开发模式选择调试方式,请开发删除 --> 
       <link rel="stylesheet" href="css/index.css" >
       <!-- /本地调试方式 -->
       <link rel="stylesheet" href="http://srcPath/index.css" >
       <!-- /开发机调试方式 -->
       <!-- E 本地调试 -->
    </head>
    <body>
    </body>
</html>

【三】、webApp–meta

<meta name="viewport" content="width=device-width, initial-scale=1.0,
 maximum-scale=1.0, user-scalable=no">
  • width – viewport的宽度
  • height – viewport的高度
  • initial-scale – 初始的缩放比例
  • minimum-scale – 允许用户缩放到的最小比例
  • maximum-scale – 允许用户缩放到的最大比例
  • user-scalable – 是否允许用户缩放

【图片规范】


[1]图片大小

—PC平台单张的图片的大小不应大于 200KB;

—移动平台单张的图片的大小不应大于 100KB;

[2]图片质量

— 上线的图片都应该经过压缩处理,压缩后的图片不应该出现肉眼可感知的失真区域 60质量的JPEG格式图片与质量大于60的相比,肉眼已看不出明显的区别,因此保存 JPEG 图的时候,质量一般控制在60,若保真度要求高的图片可适量提高到 80,图片大小控制在 200KB 以内;

[3]图片引入–CSS Sprites VS Data URI(base64编码)

—HTML 中图片引入不需添加 width、height 属性,alt 属性应该写上:

<img src="" alt="" >

— CSS 中图片引入不需要引号

 .jdc {
background-image: url(icon.png);
}

【CSS规范】


【一】、编码规范

[1] 样式表编码

—样式文件必须写上@charset规则,并且一定要写在样式文件的第一行首个字符位置开始写,编码名用”UTF-8”; —字符@charset都使用小写字母,不能出现转义符,编码名允许大小写; —.考虑到在使用”UTF-8”编码情况下BOM对代码的污染和编码显示的问题,在可控范围下,坚决不使用BOM;

【二】、代码风格

[1]书写尽量使用展开格式:

 .jdc{
display: block;
width: 50px;
}

[2]代码大小写

样式选择器,属性名,属性值关键字全部使用小写字母书写,属性字符串允许使用大小写;

[3]选择器

  • 尽量少用通用选择器*
  • 不使用ID选择器
  • 不使用无具体语义定义的标签选择器

[4]代码缩进

—-统一使用四个空格进行代码缩进,使得各编辑器表现一致(各编辑器有相关配置);

[5]分号

— 每个属性声明末尾都要加分号;

[6]代码易读性

—左括号与类名之间一个空格,冒号与属性值之间一个空格; —逗号分隔的取值,逗号之后一个空格; —为单个css选择器开启新行;

 .jdc, 
 .jdc_hd {
   color: #ff0; 
   }

—不要为0指明单位; —css属性值需要用到引号时,统一使用单引号

 .jdc { 
font-family: 'Hiragino Sans GB';
}

【三】、属性书写顺序

  • 布局定位属性:display / position / float / clear / visibility / overflow
  • 自身属性:width / height / margin / padding / border / background
  • 文本属性:color / font / text-decoration / text-align / vertical-align / white- space / break-word
  • 其他属性(CSS3):content / cursor / border-radius / box-shadow / text-shadow / background:linear-gradient

【四】、CSS3浏览器私有前缀写法

 .jdc {
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
-o-border-radius: 10px;
-ms-border-radius: 10px;
border-radius: 10px;
}      

【五】、注释规范

[1]单行注释—注释内容第一个字符和最后一个字符都是一个空格字符,单独占一行,行与行之间相隔一行;

 /* Comment Text */
 .jdc{}

[2] 模块注释—注释内容第一个字符和最后一个字符都是一个空格字符,

\/* 与模块信息描述占一行,多个横线分割符-与*/ 占一行,行与行之间相隔两行;

 /* Module A
 ---------------------------------------------------------------- */
 .mod_a {}

[3]文件信息注释—在样式文件编码声明@charset语句下面注明页面名称、作者、创建日期等信息;

@charset "UTF-8";
/**
* @desc File Info
* @author Author Name
* @date 2015-10-10
 */ 

【六】、媒体查询

[1]判断设备横竖屏

 /* 横屏 */
@media all and (orientation :landscape) {
 }
 /* 竖屏 */
@media all and (orientation :portrait) {
    }

[2]判断设备宽高

 /* 设备宽度大于 320px 小于 640px-all 所有设备 */
 @media all and (min-width:320px) and (max-width:640px) {
 }


 // screen 显示器类
@media screen and (min-width: 1200px) {
    css-code;
}
@media screen and(min-width: 960px) and (max-width: 1199px) {
    css-code;
}
@media screen and(min-width: 768px) and (max-width: 959px) {
    css-code;
}
@media screen and(min-width: 480px) and (max-width: 767px) {
    css-code;
}
@media screen and (max-width: 479px) {
    css-code;
}

[3]判断设备像素比

   /* 设备像素比为 1 */
@media only screen and (-webkit-min-device-pixel-ratio: 1), only screen and (min-device-pixel-ratio: 1) {
}
/* 设备像素比为 1.5 */
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) { 
}
/* 设备像素比为 2 */
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) { 
}  

【命名规范】


【一】、HTML/CSS文件命名

—确保文件命名总是以字母开头而不是数字,且字母一律小写,以下划线连接且不带其他标点符号;

【二】、ClassName命名

—className的命名应该尽量简短、明确、必须以字母开头命名,且全部字母为小写,单词之间统一使用下划线’_‘连接;

[1]命名原则:

—祖先模块不能出现下划线,除了是全站公用模块,如mod_系列的命名;

—在子孙模块数量可预测的情况下,严格继承祖先模块的命名前缀;

—在子孙模块超过4级或以上的时候,可以考虑在祖先模块内具有辨识性的独立缩写作为新的子孙模块;

【JS规范】


【一】、语言规范

【二】、代码规范

[1]单行代码块

—在单行代码块中使用空格;

 function foo () { return true }
 if (foo) { bar = 0 }

[2]大括号风格

if (foo) {
  bar()
 } else {
 baz()
}

[3]变量命名

—统一使用驼峰式命名;

[4]拖尾逗号

—约束在最后一个元素或属性与闭括号]或}在不同行时可以使用拖尾逗号,当在同一行时,禁止使用拖尾逗号;

[5]逗号空格

—逗号前后的空格可以提升代码的可读性,约定在逗号后面使用空格,逗号前面不加空格;

[6]逗号风格

—b标准风格,逗号放置在当前行的末尾;

[7]计算属性的空格

—约定在对象的计算属性内,禁止使用空格;

obj['foo']

[8]函数调用

—函数调用的时,禁止使用空格;

[9]对象字面量的键值缩进

—-对象字面量的键和值之间不能存在空格,且要求对象字面量的冒号和值之间存在一个空格;

[10]构造函数首字母大写

[11]构造函数的参数

—通过new调用构造函数时,约定使用圆括号;

[12]变量声明

—约定之声明变量时,一个声明只能有一个变量;

[13]操作符的空格

— 约定操作符前后都需要添加空格;