你必须知道的前端规范
HTML
1.HTML规范
1.1 元素及标签闭合
为了能让浏览器更好的解析代码以及能让代码具有更好的可读性,有如下约定:
- 1.
1)所有具有开始标签和结束标签的元素都要写上起止标签,某些允许省略开始标签或和束标签的元素亦都要写上。
2)空元素标签都不加 “/” 字符。
推荐:
不推荐:
1.2 代码大小写
HTML标签名、类名、标签属性和大部分属性值统一用小写
推荐:
不推荐:
HTML文本、CDATA、JavaScript、meta标签某些属性等内容可大小写混合<br/>
1.3 类型属性
不需要为 CSS、JS 指定类型属性,HTML5 中默认已包含<br />
推荐:
不推荐:
1.4 元素属性
- 元素属性值使用双引号语法
- 元素属性值可以写上的都写上
推荐:
不推荐:
1.5 特殊字符引用
文本可以和字符引用混合出现。这种方法可以用来转义在文本中不能合法出现的字符。
在 HTML 中不能使用小于号 “<” 和大于号 “>”特殊字符,浏览器会将它们作为标签解析,若要正确显示,在 HTML 源代码中使用字符实体
推荐:
不推荐:
1.6 纯数字输入框
使用 type=“tel” 而不是 type=“number”
1.7 代码嵌套
元素嵌套规范,每个块状元素独立一行,内联元素可选
推荐:
不推荐:
段落元素与标题元素只能嵌套内联元素
推荐:
不推荐:
2. HTML注释
2.1 单行注释
一般用于简单的描述,如某些状态描述、属性描述等
注释内容前后各一个空格字符,注释位于要注释代码的上面,单独占一行
推荐:
不推荐:
2.2 模块注释
一般用于描述模块的名称以及模块开始与结束的位置
注释内容前后各一个空格字符,<!-- S Comment Text --> 表示模块开始,<!-- E Comment Text --> 表示模块结束,模块与模块之间相隔一行
推荐写法:
不推荐写法:
2.3 嵌套模块注释
当模块注释内再出现模块注释的时候,为了突出主要模块,嵌套模块不再使用
而改用
注释写在模块结尾标签底部,单独一行。
CSS
1.CSS规范
1.1 规范约定
- 样式文件必须写上 @charset 规则,并且一定要在样式文件的第一行首个字符位置开始写,编码名用 “UTF-8”
- 字符 @charset “”; 都用小写字母,不能出现转义符,编码名允许大小混写
- 考虑到在使用“UTF-8”编码情况下 BOM 对代码的污染和编码显示的问题,在可控范围下,坚决不使用 BOM
推荐:
不推荐:
1.2 代码格式化
样式书写一般有两种:一种是紧凑格式 (Compact)
一种是展开格式(Expanded)
统一使用展开格式书写样式
1.3 代码大小写
样式选择器,属性名,属性值关键字全部使用小写字母书写,属性字符串允许使用大小写。
1.4 选择器
- 尽量少用通用选择器 *
- 不使用 ID 选择器
- 不使用无具体语义定义的标签选择器
1.5 代码缩进
统一使用四个空格进行代码缩进,使得各编辑器表现一致(各编辑器有相关配置)
1.6 分号
每个属性声明末尾都要加分号;
1.7 代码易读性
左括号与类名之间一个空格,冒号与属性值之间一个空格
推荐:
不推荐:
逗号分隔的取值,逗号之后一个空格
推荐:
不推荐:
为单个css选择器或新申明开启新行
推荐:
不推荐:
颜色值 rgb() rgba() hsl() hsla() rect() 中不需有空格,且取值不要带有不必要的 0
推荐:
不推荐:
属性值十六进制数值能用简写的尽量用简写
推荐:
不推荐:
不要为 0 指明单位
推荐:
不推荐:
1.8 属性值引号
css属性值需要用到引号时,统一使用单引号
1.9 属性书写顺序
建议遵循以下顺序:
- 布局定位属性: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 …
1.10 CSS3浏览器私有前缀写法
CSS3 浏览器私有前缀在前,标准前缀在后
2.CSS注释
2.1 单行注释
注释内容第一个字符和最后一个字符都是一个空格字符,单独占一行,行与行之间相隔一行
推荐:
不推荐:
2.2 模块注释
注释内容第一个字符和最后一个字符都是一个空格字符,/* 与 模块信息描述占一行,多个横线分隔符-与*/占一行,行与行之间相隔两行
推荐:
不推荐:
2.3 文件信息注释
在样式文件编码声明 @charset 语句下面注明页面名称、作者、创建日期等信息
原文传送带 京东凹凸实验室前端代码规范
以后尽量按照规范来
nice