前端代码规范及风格 Code Guide

不管有多少人共同参与同一项目,一定要确保每一行代码都像是同一个人编写的

命名规则

项目命名

全部采用 小写 方式,以 下划线 分隔
例:my_project_name

目录命名

  1. 参照项目命名规则
  2. 有复数结构时,采用复数命名法

例如: scripts、styles、images、data_modals

JS文件命名

参照项目命名规则
例: lk-utils.js

CSS,SCSS文件命名

参照项目命名规则
例:lk-style.scss

HTML文件命名

参照项目命名规则
例:lk-index.html



HTML

语法

  1. 缩进使用2个空格(bootstrap规范)
  2. 嵌套的节点应该缩进标签不要大写,即便是 doctype 标签
  3. 在属性上,使用双引号,不要使用单引号
  4. 属性名全小写,用中划线做分隔符
  5. 不要在自动闭合标签结尾处使用斜线(HTML5 规范 指出他们是可选的)
  6. 不要忽略可选的关闭标签,例: </li></body>
<!doctype html>
<html>
    <head>
        <title>Page title</title>
    </head>
    <body>
        <img src="images/company_logo.png" alt="Company">
        <h1 class="hello-world">Hello, world!</h1>
    </body>
</html>

HTML doctype

为每个 HTML 页面的第一行添加standards mode(标准模式)声明,这样能够确保在每个浏览器中拥有一致的展现

lang属性

根据HTML5规范:

应在html标签上加上lang属性,从而为文档设置正确的语言。这会给语音工具和翻译工具帮助,告诉它们应当怎么去发音和翻译。


更多关于 lang 属性的说明在这里
在菜鸟联盟上可以查到语言列表

charset 字符编码

通过声明一个明确的字符编码,让浏览器轻松、快速的确定适合网页内容的渲染方式,通常指定为‘UTF-8’

IE兼容模式

  1. 用标签可以指定页面应该用什么版本的IE来渲染

如果想要了解更多,请点击这里

What does <meta http-equiv=“X-UA-Compatible” content=“IE=edge”> do?
Depending upon what Microsoft browsers you support you may not need to continue using the X-UA-Compatible tag. If you need to support IE9 or IE8, then I would recommend using the tag. If you only support the latest browsers (IE11 and/or Edge) then I would consider dropping this tag altogether.

简而言之需要兼容IE9/8,加上X-UA-Compatible,否则不用加

  1. 不同doctype在不同浏览器下会触发不同的渲染模式(这篇文章总结的很到位)
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    </head>
    ...
</html>

引入CSS,JS

根据html5规范,通常在引入CSS和JS时不需要指明type,因为 text/csstext/javasctipt 分别是他们的默认值

HTML5规范链接

<!-- External CSS -->
<link rel="stylesheet" href="code_guide.css">

<!-- In-document CSS -->
<style>
    ...
</style>

<!-- External JS -->
<script src="code_guide.js"></script>

<!-- In-document JS -->
<script>
    ...
</script>

属性顺序

属性应该按照特定的顺序出现以保证易读性

  • class
  • id
  • name
  • data-*
  • src , for , type , href , value , max-length , max , min , pattern
  • placeholder , title , alt
  • aria-* , role
  • required , readonly , disabled

class是为高可复用组件设计的,所以应处在第一位
id更加具体且应该尽量少使用,所以将它放在第二位

<a class="..." id="..." data-modal="toggle" href="#">Example link</a>

<input class="form-control" type="text">

<img src="..." alt="...">

boolean属性

boolean属性指不需要声明取值的属性,XHTML需要每个属性声明取值,但是HTML5中并不需要

boolean属性的存在表示取值为true,不存在则表示取值为false。

<input type="text" disabled>

<input type="checkbox" value="1" checked>

<select>
    <option value="1" selected>1</option>
</select>

JS中生成标签

在JS文件中生成标签让内容变得更难查找,更难编辑,性能更差。应该尽量避免这种情况的出现。

减少标签数量

  1. 在编写HTML代码时,需要尽量避免多余的父节点
  2. 很多时候, 需要通过迭代和重构来使HTML变得更少
<!-- Not well -->
<span class="avatar">
    <img src="...">
</span>

<!-- Better -->
<img class="avatar" src="...">

实用高于完美

  1. 尽量遵循HTML标准和语义
  2. 任何时候都要用 尽量小的复杂度尽量少的标签 来解决问题
  3. 但是不应该以浪费实用性作为代价

CSS,SCSS

通识

/* 这样叫规则(下同) */
.element {
   
  ...
}

.element {
   
  /* 这样叫属性(下同) */
  height: 30px;
}

缩进

使用2空格

分号

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

空格

以下几种情况不需要空格:

  • 每条声明语句的 :
  • 多个规则的分隔符 " .
  • !important !
  • 属性值中 ( ) 的前后
  • 行末不要有多余的空格


以下几种情况需要空格:

  • 属性值前
  • 选择器 > , + , ~ 前后
  • {
  • !important !
  • @else 前后
  • 属性值中的 ,
  • 注释 /* _后和 __*/_
/* not good */
.element {
   
    color :
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值