"HTML编码规范" 笔记
转自学习网站(百度原创):https://github.com/ecomfe/spec/blob/master/html-style-guide.md
本文是百度培训网站上关于HTML编码规范的笔记,非博主原创。
前言
HTML 作为描述网页结构的超文本标记语言,在百度一直有着广泛的应用。本文档的目标是使 HTML 代码风格保持一致,容易被理解和被维护。
代码风格
缩进与换行
- [强制] 使用
4个空格做为一个缩进层级,不允许使用2个空格 或tab字符。 - [建议] 每行不得超过
120个字符 - [强制]
class必须单词全字母小写,单词间以-分隔。 - [强制]
class必须代表相应模块或部件的内容或功能,不得以样式信息进行命名。 - [强制] 元素
id必须保证页面唯一。 - [建议]
id建议单词全字母小写,单词间以-分隔。同项目必须保持风格一致。 - [建议]
id、class命名,在避免冲突并描述清楚的前提下尽可能短。 - [强制] 禁止为了
hook 脚本,创建无样式信息的class。 - [强制] 同一页面,应避免使用相同的
name与id。
标签
- [强制] 标签名必须使用小写字母。
- [强制] 对于无需自闭合的标签,不允许自闭合。
- [强制] 对
HTML5中规定允许省略的闭合标签,不允许省略闭合标签。 - [强制] 标签使用必须符合标签嵌套规则。
- [建议] HTML 标签的使用应该遵循标签的语义。
- [建议] 在 CSS 可以实现相同需求的情况下不得使用表格进行布局。
- [建议] 标签的使用应尽量简洁,减少不必要的标签。
属性
- [强制] 属性名必须使用小写字母。
- [强制] 属性值必须用双引号包围。
- [建议] 布尔类型的属性,建议不添加属性值。
- [建议] 自定义属性建议以
xxx-为前缀,推荐使用data-。
通用
DOCTYPE
- [强制] 使用
HTML5的doctype来启用标准模式,建议使用大写的DOCTYPE。 - [建议] 启用 IE Edge 模式。
- [建议] 在
html标签上设置正确的lang属性。
编码
- [强制] 页面必须使用精简形式,明确指定字符编码。指定字符编码的
meta必须是head的第一个直接子元素。 - [建议]
HTML文件使用无BOM的UTF-8编码。
CSS 和 JavaScript 引入
- [强制] 引入
CSS时必须指明rel="stylesheet"。 - [建议] 引入
CSS和JavaScript时无须指明type属性。 - [建议] 在
head中引入页面需要的所有CSS资源。 - [建议]
JavaScript应当放在页面末尾,或采用异步加载。 - [建议] 移动环境或只针对现代浏览器设计的 Web 应用,如果引用外部资源的
URL协议部分与页面相同,建议省略协议前缀。
head
title
- [强制] 页面必须包含
title标签声明标题。 - [强制]
title必须作为head的直接子元素,并紧随charset声明之后。
favicon
- [强制] 保证
favicon可访问。
viewport
- [建议] 若页面欲对移动设备友好,需指定页面的
viewport。
图片
- [强制] 禁止
img的src取值为空。延迟加载的图片也要增加默认的src。 - [建议] 避免为
img添加不必要的title属性。 - [建议] 为重要图片添加
alt属性。 - [建议] 添加
width和height属性,以避免页面抖动。 - [建议] 有下载需求的图片采用
img标签实现,无下载需求的图片采用 CSS 背景图实现。
表单
控件标题
- [强制] 有文本标题的控件必须使用
label标签将其与其标题相关联。
按钮
- [强制] 使用
button元素时必须指明type属性值。 - [建议] 尽量不要使用按钮类元素的
name属性。
可访问性 (A11Y)
- [建议] 负责主要功能的按钮在 DOM 中的顺序应靠前。
- [建议] 当使用 JavaScript 进行表单提交时,如果条件允许,应使原生提交功能正常工作。
- [建议] 在针对移动设备开发的页面时,根据内容类型指定输入框的
type属性。
多媒体
- [建议] 当在现代浏览器中使用
audio以及video标签来播放音频、视频时,应当注意格式。 - [建议] 在支持
HTML5的浏览器中优先使用audio和video标签来定义音视频元素。 - [建议] 使用退化到插件的方式来对多浏览器进行支持。
- [建议] 只在必要的时候开启音视频的自动播放。
- [建议] 在
object标签内部提供指示浏览器不支持该标签的说明。
模板中的 HTML
- [建议] 模板代码的缩进优先保证 HTML 代码的缩进规则。
- [建议] 模板代码应以保证 HTML 单个标签语法的正确性为基本原则。
- [建议] 在循环处理模板数据构造表格时,若要求每行输出固定的个数,建议先将数据分组,之后再循环输出。
"HTML编码规范" 笔记的更多相关文章
- 【原】Java学习笔记002 - JAVA SE编码规范
/* * 编码规范: * 1.所有的命名遵循"见名知意"的原则 * 2.所有的命名不允许使用汉字或拼音 * 3.Java的工程命名建议使用小写,比如:oa.crm.cms... * ...
- Python开发【笔记】:PEP 8 编码规范
PEP 8 编码规范 https://bk.tencent.com/document/bkrule/040101.pdf ...
- 学习笔记之Python最简编码规范
Python最简编码规范 - 机器学习算法与Python学习 https://mp.weixin.qq.com/s/i6MwvC4jYTE6D1KHFgBeoQ https://www.cnblogs ...
- 《从零开始学Swift》学习笔记(Day 56)——命名规范Swift编码规范之命名规范
原创文章,欢迎转载.转载请注明:关东升的博客 程序代码中到处都是自己定义的名字,取一个有样并且符合规范的名字非常重要. 命名方法很多,但是比较有名的,广泛接受命名法有: 匈牙利命名,一般只是命名变量, ...
- 菜鸟笔记 -- Chapter 4.7 代码注释与编码规范
4.7 代码注释与编码规范 在程序代码中适当的添加注释可以提高程序的可读性和可维护性.好的编码规范可以使程序更易阅读和理解.下面我们将介绍几种代码注释,以及应该注意的编码规范. 4.7.1 代码注释 ...
- 《从零開始学Swift》学习笔记(Day 56)—— Swift编码规范之命名规范
原创文章,欢迎转载.转载请注明:关东升的博客 程序代码中到处都是自定义的名字,取一个有样而且符合规范的名字非常重要. 命名方法非常多,可是比較有名的,广泛接受命名法有: 匈牙利命名,一般仅仅是命名变量 ...
- PHP 高级编程(1/5) - 编码规范及文档编写
PHP 高级程序设计学习笔记20140612 软件开发中的一个重要环节就是文档编写.他可以帮助未来的程序维护人员和使用者理解你在开发时的思路.也便于日后重新查看代码时不至于无从下手.文档还有一个重要的 ...
- HTML编码规范
HTML编码规范 1 前言 HTML作为描述网页结构的超文本标记语言,在百度一直有着广泛的应用.本文档的目标是使HTML代码风格保持一致,容易被理解和被维护. 2 代码风格 2.1 缩进与换行 [强制 ...
- 字符编码终极笔记:ASCII、Unicode、UTF-8、UTF-16、UCS、BOM、Endian
1.字符编码.内码,顺带介绍汉字编码 字符必须编码后才能被计算机处理.计算机使用的缺省编码方式就是计算机的内码.早期的计算机使用7位的ASCII编码,为了处理汉字,程序员设计了用于简体中文的GB231 ...
随机推荐
- 用JSON.stringify处理循环引用对象
通常,我们会用JSON.stringify把Javascript对象序列化成JSON格式,这在大多数情况下是够用的.但是,当你要转换的对象里存在循环引用时,问题就来了. js对象循环引用导致内存泄漏 ...
- 【NET Core】Nuget包发布流程
1.新建一个.NET Core类库 2.新增一个方法,并编译项目 3.下载Nuget.exe,与刚才新建的类库放在同一目录下 下载地址:https://www.nuget.org/downloads ...
- kotlin 委托
委托模式是软件设计模式中的一项基本技巧.在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理. Kotlin 直接支持委托模式,更加优雅,简洁.Kotlin 通过关键 ...
- Python 开发 项目《外星人入侵》
2019-02-05 本篇心路历程: 本篇是打算记录自己的第一个python项目,也是众人皆知的<外星人入侵项目>,本项目大概500多行.趁着寒假,大概耗时3天吧,把完整代码敲了出来,当然 ...
- 用JavaScript比较两个数组是否相等
JS怎么比较两个数组是否有完全相同的元素?Javascript不能直接用==或者===来判断两个数组是否相等,无论是相等还是全等都不行,以下两行JS代码都会返回false alert([0,0,0]= ...
- hadoop之数据压缩与数据格式
* 注:本文原创,转载请注明出处,本人保留对未注明出处行为的责任追究. a.数据压缩 优点: 1.节省本地空间 2.节省带宽 缺点: 花时间 1.MR中允许进行数据压缩的地方有三个: 1)input起 ...
- 浅谈UML中常用的几种图——用例图
1.UML简介 统一建模语言(Unified Modeling Language,UML)又称标准建模语言,是始于1997年的一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的 ...
- C语言缓冲区
定义 缓冲区是内存空间的一部分,用于缓冲输入或输出的数据.根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区. 类型 缓冲区分为三种类型:全缓冲.行缓冲和不带缓冲. 1.全缓冲 在这种情况 ...
- hdu6396(思维+输入挂)
Swordsman Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): Accept ...
- 2015-112 ado.net2
CRUD:create read update delete 七. 数据绑定数据列的转换 在gridview中添加<OnRowDataBound="GridView1_RowDataB ...