HTML 规范

优质
小牛编辑
136浏览
2023-12-01

代码规范

团队约定

为了能让浏览器更好的解析代码以及能让代码具有更好的可读性,有如下约定:

  • 所有具有开始标签和结束标签的元素都要写上起止标签,某些允许省略开始标签或和束标签的元素亦都要写上。
  • 空元素标签都不加 “/” 字符
    • 空元素:area、base、br、col、command、embed、hr、img、input、keygen、link、meta、param、source、track、wbr

推荐:

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

不推荐:

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

<br />

书写风格

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

推荐:

<div class="demo"></div>

不推荐:

<div class="DEMO"></div>
<div class="DEMO"></div>

HTML 文本、CDATA、JavaScript、meta 标签某些属性等内容可大小写混合

<!-- 优先使用 IE 最新版本和 Chrome Frame -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<!-- HTML文本内容 -->
<h1>I AM WHAT I AM</h1>
<!-- JavaScript 内容 -->
<script type="text/javascript">
  var demoName = 'demoName';
  ...
</script>
<!-- CDATA 内容 -->
<script type="text/javascript">
  <![CDATA[
  ...
  ]]>
</script>

类型属性

需要为 CSS、JS 指定类型属性

推荐:

<link rel="stylesheet" type="text/css" href="" />
<script type="text/javascript" src=""></script>

不推荐:

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

元素属性

元素属性值使用双引号语法 元素属性值可以写上的都写上

推荐:

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

不推荐:

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

代码缩进

统一使用四个空格进行代码缩进,使得各编辑器表现一致

各编辑器有相关配置,yunli 中有.editorconfig 配置文件,只需要在编辑器中安装 editorconfig 插件(用 webstorm 和 phpstorm 举例)

<div class="jdc">
  <a href="#"></a>
</div>

代码嵌套

元素嵌套规范,每个块状元素独立一行,内联元素可选

推荐:

<div>
  <h1></h1>
  <p></p>
</div>
<p><span></span><span></span></p>

不推荐:

<div>
  <h1></h1>
  <p></p>
</div>
<p>
  <span></span>
  <span></span>
</p>

段落元素与标题元素只能嵌套内联元素

推荐:

<h1><span></span></h1>
<p><span></span><span></span></p>

不推荐:

<h1><div></div></h1>
<p><div></div><div></div></p>