《图解HTML》第五节 HTML编码规范

简介: 通过前面的四节,我们对HTML已经有了一个基本的认识和使用。可是,当我们写了很多的HTML时,我们会发现即使一样的展示效果,可是我们却写得全然不同。

通过前面的四节,我们对HTML已经有了一个基本的认识和使用。可是,当我们写了很多的HTML时,我们会发现即使一样的展示效果,可是我们却写得全然不同。

例如:

```html

<body>

   <span style="background-color: red;">这是span</span>

   <p style="background-color: red; display: inline;">这是p</p>

</body>

```

![](https://upload-images.jianshu.io/upload_images/2789632-8d0c1456ef75935f.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

通过上面的例子我们会发现,元素的样式,是可以通过css去改变的,所以变得非常灵活。**可是在真正得开发中,我们希望不同人开发的出来的代码都是尽可能一样的,包括标签的选取使用,属性的顺序等等。**

以下的规范是参考:https://codeguide.bootcss.com/ 选取的关于HTML的编码规范,之后可能会根据自身需要进行修改成符合自身的规范。

## 语法

* HTML大小写不敏感,但是标签不要大写,DOCTYPE大写。

* 用两个空格来代替制表符(tab) -- 这是唯一能保证在所有环境下获得一致展现的方法。

* 嵌套元素应当缩进一次(即两个空格)。

* 对于属性的定义,永远全部使用双引号,绝不要使用单引号。

* 不要在自闭合(self-closing)元素的尾部添加斜线 — HTML5 规范 中明确说明斜线是可忽略的。

* 不要省略可选的结束标签(closing tag)(例如,`</li>` 或 `</body>`)。

示例:

```html

<!DOCTYPE html>

<html lang="en">

<head>

   <meta charset="UTF-8">

   <meta name="viewport" content="width=device-width, initial-scale=1.0">

   <title>Document</title>

</head>

<body>

   <!-- HTML大小写不敏感,但是标签不要大写,DOCTYPE大写 -->

   <!-- good -->

   <p>Hello World</p>

   <!-- not good -->

   <P>Hello World</P>

   <!-- 用两个空格来代替制表符(tab) -->

   <!-- good -->

   <div>  前面有两个空格</div>

   <!-- not good -->

   <div>   前面有一个tab</div>

   <!-- 嵌套元素应当缩进一次(即两个空格)。 -->

   <!-- good -->

   <div>

       parent

       <div>

           child

       </div>

   </div>

   <!-- not good -->

   <div>

       parent

   <div>

       child

   </div>

   </div>

   <!-- 对于属性的定义,永远全部使用双引号,绝不要使用单引号 -->

   <!-- good -->

   <img src="../../img/browser.jpg" alt="browser">

   <!-- not good -->

   <img src='../../img/browser.jpg' alt='browser'>

   <!-- 不要在自闭合(self-closing)元素的尾部添加斜线  -->

   <!-- good -->

   <br>

   <!-- not good -->

   <br />

   <!-- 不要省略可选的结束标签 -->

   <!-- good -->

   <ul>

       <li>Hello</li>

       <li>World</li>

   </ul>

   <!-- not good -->

   <ul>

       <li>Hello

       <li>World

   </ul>

</body>

</html>

```

## 属性顺序

HTML 属性应当按照以下给出的顺序依次排列,确保代码的易读性。

* class

* id,name

* data-*

* scr,for,type,href,value

* title,alt

* role,aria-*

class 用于标识高度可复用组件,因此应该排在首位。id 用于标识具体组件,应当谨慎使用(例如,页面内的书签),因此排在第二位。

示例:

```

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

 Example link

</a>

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

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

```

## 其他

* 布尔型属性不用赋值

元素的布尔型属性如果有值,就是 true,如果没有值,就是 false。

* 减少标签的数量

编写 HTML 代码时,尽量避免多余的父元素。很多时候,这需要迭代和重构来实现。

* 尽量避免JavsScript生成的标签

示例:

```

<!DOCTYPE html>

<html lang="en">

<head>

   <meta charset="UTF-8">

   <meta name="viewport" content="width=device-width, initial-scale=1.0">

   <title>Document</title>

</head>

<body>

   <!-- 布尔型属性不用赋值 -->

   <!-- good -->

   <input type="checkbox" checked>

   <!-- not good  -->

   <input type="checkbox" checked=true>

   <!-- 减少标签的数量 -->

   <!-- good -->

   <img class="avatar" src="...">

   <!-- not good -->

   <span class="avatar">

       <img src="...">

   </span>

   <!-- 尽量避免JavsScript生成的标签 -->

   <!-- goood -->

   <div id="append"><p>i'm child.</p></div>

   <!-- not good -->

   <div id="append"></div>

   <script>

       const element = document.querySelector('#append');

       const child = document.createElement('p');

       child.textContent = 'i\'m child.';

       element.appendChild(child);

   </script>

</body>

</html>

```

## 最后

尽量遵循 HTML 标准和语义,但是不要以牺牲实用性为代价。任何时候都要尽量使用最少的标签并保持最小的复杂度。

目录
相关文章
|
Web App开发 移动开发 前端开发
|
2天前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
14 6
|
19天前
|
移动开发 前端开发 JavaScript
[HTML、CSS]细节与使用经验
本文总结了前端开发中的一些重要细节和技巧,包括CSS选择器、定位、层级、全局属性、滚轮控制、轮播等。作者以纯文字形式记录,便于读者使用<kbd>Ctrl + F</kbd>快速查找相关内容。文章还提供了示例代码,帮助读者更好地理解和应用这些知识点。
40 1
[HTML、CSS]细节与使用经验
|
20天前
|
移动开发 前端开发 JavaScript
[HTML、CSS]知识点
本文涵盖前端知识点扩展、HTML标签(如video、input、canvas)、datalist和details标签的使用方法,以及CSS布局技巧(如margin、overflow: hidden和动态height)。文章旨在分享作者的学习经验和实用技巧。
30 1
[HTML、CSS]知识点
|
1月前
|
前端开发 JavaScript 搜索推荐
打造个人博客网站:从零开始的HTML和CSS之旅
【9月更文挑战第32天】在这个数字化的时代,拥有一个个人博客不仅是展示自我的平台,也是技术交流的桥梁。本文将引导初学者理解并实现一个简单的个人博客网站的搭建,涵盖HTML的基础结构、CSS样式的美化技巧以及如何将两者结合来制作一个完整的网页。通过这篇文章,你将学会如何从零开始构建自己的网络空间,并在互联网世界留下你的足迹。
|
15天前
|
移动开发 JavaScript 前端开发
html table+css实现可编辑表格的示例代码
html table+css实现可编辑表格的示例代码
|
12天前
|
前端开发 JavaScript
用HTML CSS JS打造企业级官网 —— 源码直接可用
必看!用HTML+CSS+JS打造企业级官网-源码直接可用,文章代码仅用于学习,禁止用于商业
54 1
|
17天前
|
前端开发 JavaScript 安全
HTML+CSS+JS密码灯登录表单
通过结合使用HTML、CSS和JavaScript,我们创建了一个带有密码强度指示器的登录表单。这不仅提高了用户体验,还帮助用户创建更安全的密码。希望本文的详细介绍和代码示例能帮助您在实际项目中实现类似功能,提升网站的安全性和用户友好性。
32 3
|
27天前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
78 6
下一篇
无影云桌面