《图解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开发 移动开发 前端开发
|
8天前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
26 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
28天前
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
64 34
|
29天前
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
53 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
30天前
|
前端开发
“弘五四,耀青春”程序创意获奖作品【html+css】
本作品以“青春筑梦,共创未来”为主题,采用动态龙元素展现青春活力与创新精神。页面设计简洁明快,色彩协调,突显年轻人积极向上的风貌。作品内容包括获奖截图、名字《时代扬新帆》及源代码分享。特别说明:禁止用于商业活动,可用于比赛和作业等开源场景。最后,作者表达了对五四精神的致敬与传承,强调了青春活力和创造力的重要性,并感谢评委和支持者。 **获奖感言摘录:** “获得这个奖项,对我们团队来说,既是认可也是激励。我们将继续努力,不断优化产品,为用户带来更好的体验,为社会贡献更多价值。”
33 2
|
1月前
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
123 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
1月前
html+js+css实现的建筑方块立体数字时钟源码
html+js+css实现的建筑方块立体数字时钟源码
79 33
|
2月前
一个好看的小时钟html+js+css源码
一个好看的小时钟html+js+css源码
116 24
|
3月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
86 5
|
3月前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
121 7

热门文章

最新文章