转自学习网站(百度原创):https://github.com/ecomfe/spec/blob/master/html-style-guide.md

本文是百度培训网站上关于HTML编码规范的笔记,非博主原创。

前言

HTML 作为描述网页结构的超文本标记语言,在百度一直有着广泛的应用。本文档的目标是使 HTML 代码风格保持一致,容易被理解和被维护。

代码风格

缩进与换行

  1. [强制] 使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符。
  2. [建议] 每行不得超过 120 个字符
  3. [强制] class 必须单词全字母小写,单词间以 - 分隔。
  4. [强制] class 必须代表相应模块或部件的内容或功能,不得以样式信息进行命名。
  5. [强制] 元素 id 必须保证页面唯一。
  6. [建议] id 建议单词全字母小写,单词间以 - 分隔。同项目必须保持风格一致。
  7. [建议] idclass 命名,在避免冲突并描述清楚的前提下尽可能短。
  8. [强制] 禁止为了 hook 脚本,创建无样式信息的 class。
  9. [强制] 同一页面,应避免使用相同的 name 与 id。

标签

  1. [强制] 标签名必须使用小写字母。
  2. [强制] 对于无需自闭合的标签,不允许自闭合。
  3. [强制] 对 HTML5 中规定允许省略的闭合标签,不允许省略闭合标签。
  4. [强制] 标签使用必须符合标签嵌套规则。
  5. [建议] HTML 标签的使用应该遵循标签的语义。
  6. [建议] 在 CSS 可以实现相同需求的情况下不得使用表格进行布局。
  7. [建议] 标签的使用应尽量简洁,减少不必要的标签。

属性

  1. [强制] 属性名必须使用小写字母。
  2. [强制] 属性值必须用双引号包围。
  3. [建议] 布尔类型的属性,建议不添加属性值。
  4. [建议] 自定义属性建议以 xxx- 为前缀,推荐使用 data-

通用

DOCTYPE

  1. [强制] 使用 HTML5 的 doctype 来启用标准模式,建议使用大写的 DOCTYPE
  2. [建议] 启用 IE Edge 模式。
  3. [建议] 在 html 标签上设置正确的 lang 属性。

编码

  1. [强制] 页面必须使用精简形式,明确指定字符编码。指定字符编码的 meta 必须是 head 的第一个直接子元素。
  2. [建议] HTML 文件使用无 BOM 的 UTF-8 编码。

CSS 和 JavaScript 引入

  1. [强制] 引入 CSS 时必须指明 rel="stylesheet"
  2. [建议] 引入 CSS 和 JavaScript 时无须指明 type 属性。
  3. [建议] 在 head 中引入页面需要的所有 CSS 资源。
  4. [建议] JavaScript 应当放在页面末尾,或采用异步加载。
  5. [建议] 移动环境或只针对现代浏览器设计的 Web 应用,如果引用外部资源的 URL 协议部分与页面相同,建议省略协议前缀。

head

title

  1. [强制] 页面必须包含 title 标签声明标题。
  2. [强制] title 必须作为 head 的直接子元素,并紧随 charset 声明之后。

favicon

  1. [强制] 保证 favicon 可访问。

viewport

  1. [建议] 若页面欲对移动设备友好,需指定页面的 viewport

图片

  1. [强制] 禁止 img 的 src 取值为空。延迟加载的图片也要增加默认的 src
  2. [建议] 避免为 img 添加不必要的 title 属性。
  3. [建议] 为重要图片添加 alt 属性。
  4. [建议] 添加 width 和 height 属性,以避免页面抖动。
  5. [建议] 有下载需求的图片采用 img 标签实现,无下载需求的图片采用 CSS 背景图实现。

表单

控件标题

  1. [强制] 有文本标题的控件必须使用 label 标签将其与其标题相关联。

按钮

  1. [强制] 使用 button 元素时必须指明 type 属性值。
  2. [建议] 尽量不要使用按钮类元素的 name 属性。

可访问性 (A11Y)

  1. [建议] 负责主要功能的按钮在 DOM 中的顺序应靠前。
  2. [建议] 当使用 JavaScript 进行表单提交时,如果条件允许,应使原生提交功能正常工作。
  3. [建议] 在针对移动设备开发的页面时,根据内容类型指定输入框的 type 属性。

多媒体

  1. [建议] 当在现代浏览器中使用 audio 以及 video 标签来播放音频、视频时,应当注意格式。
  2. [建议] 在支持 HTML5 的浏览器中优先使用 audio 和 video 标签来定义音视频元素。
  3. [建议] 使用退化到插件的方式来对多浏览器进行支持。
  4. [建议] 只在必要的时候开启音视频的自动播放。
  5. [建议] 在 object 标签内部提供指示浏览器不支持该标签的说明。

模板中的 HTML

  1. [建议] 模板代码的缩进优先保证 HTML 代码的缩进规则。
  2. [建议] 模板代码应以保证 HTML 单个标签语法的正确性为基本原则。
  3. [建议] 在循环处理模板数据构造表格时,若要求每行输出固定的个数,建议先将数据分组,之后再循环输出。

"HTML编码规范" 笔记的更多相关文章

  1. 【原】Java学习笔记002 - JAVA SE编码规范

    /* * 编码规范: * 1.所有的命名遵循"见名知意"的原则 * 2.所有的命名不允许使用汉字或拼音 * 3.Java的工程命名建议使用小写,比如:oa.crm.cms... * ...

  2. Python开发【笔记】:PEP 8 编码规范

    PEP 8 编码规范     https://bk.tencent.com/document/bkrule/040101.pdf                                     ...

  3. 学习笔记之Python最简编码规范

    Python最简编码规范 - 机器学习算法与Python学习 https://mp.weixin.qq.com/s/i6MwvC4jYTE6D1KHFgBeoQ https://www.cnblogs ...

  4. 《从零开始学Swift》学习笔记(Day 56)——命名规范Swift编码规范之命名规范

    原创文章,欢迎转载.转载请注明:关东升的博客 程序代码中到处都是自己定义的名字,取一个有样并且符合规范的名字非常重要. 命名方法很多,但是比较有名的,广泛接受命名法有: 匈牙利命名,一般只是命名变量, ...

  5. 菜鸟笔记 -- Chapter 4.7 代码注释与编码规范

    4.7 代码注释与编码规范 在程序代码中适当的添加注释可以提高程序的可读性和可维护性.好的编码规范可以使程序更易阅读和理解.下面我们将介绍几种代码注释,以及应该注意的编码规范. 4.7.1 代码注释 ...

  6. 《从零開始学Swift》学习笔记(Day 56)—— Swift编码规范之命名规范

    原创文章,欢迎转载.转载请注明:关东升的博客 程序代码中到处都是自定义的名字,取一个有样而且符合规范的名字非常重要. 命名方法非常多,可是比較有名的,广泛接受命名法有: 匈牙利命名,一般仅仅是命名变量 ...

  7. PHP 高级编程(1/5) - 编码规范及文档编写

    PHP 高级程序设计学习笔记20140612 软件开发中的一个重要环节就是文档编写.他可以帮助未来的程序维护人员和使用者理解你在开发时的思路.也便于日后重新查看代码时不至于无从下手.文档还有一个重要的 ...

  8. HTML编码规范

    HTML编码规范 1 前言 HTML作为描述网页结构的超文本标记语言,在百度一直有着广泛的应用.本文档的目标是使HTML代码风格保持一致,容易被理解和被维护. 2 代码风格 2.1 缩进与换行 [强制 ...

  9. 字符编码终极笔记:ASCII、Unicode、UTF-8、UTF-16、UCS、BOM、Endian

    1.字符编码.内码,顺带介绍汉字编码 字符必须编码后才能被计算机处理.计算机使用的缺省编码方式就是计算机的内码.早期的计算机使用7位的ASCII编码,为了处理汉字,程序员设计了用于简体中文的GB231 ...

随机推荐

  1. 打包发布Python模块或程序,安装包

    Python模块.扩展和应用程序可以按以下几种形式进行打包和发布: python setup.py获取帮助的方式 python setup.py --help python setup.py --he ...

  2. leetcode算法题01

    最近求职需要重新刷算法题,从今天开始每天至少做一个leatcode的题 如果有更好的算法或者换了语言也会更新 题目: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只 ...

  3. Pycharm快捷键设置(鼠标滚动控制字体大小)

    一.pycharm字体放大的设置 File —> setting —> Keymap —>在搜寻框中输入:increase —> Increase Font Size(双击) ...

  4. android ----- 分享的连接在手机上打开App

    首先做成HTML的页面,页面内容格式如下: <a href="[scheme]://[host]/[path]?[query]">启动应用程序</a> 这一 ...

  5. 【转载】Linux常用命令

    Linux常用命令大全(非常全!!!) 转载出处:https://www.cnblogs.com/yjd_hycf_space/p/7730690.html 系统信息 arch 显示机器的处理器架构( ...

  6. WARING

    每一道题都先手玩样例! 认真读一下每一档数据,仔细计算每一档可以拿的分数! 读完题目后,把所有能想到的思路写在纸上. 最优化题目考虑dp和贪心两种方法 字符串题目前缀考虑trie树,后缀考虑fail树 ...

  7. 微信小程序1rpx border ios真机显示不全问题

    无意间测试发现,把border的颜色的透明度颜色改成0.99就可以了.1就不行. 边框显示不全的写法: border:1rpx solid rgba(244,84,80,1); 将边框代码的透明度改成 ...

  8. Mac OS X 绑定80端口,不装nginx的小技巧

    Mac OS X 因为要绑定80端口需要ROOT权限, 但是如果用root权限启动eclipse或tomcat又会造成, 启动创建的各类文件是root的,普通用户无法删除. 为此, 我们可以通过pfc ...

  9. MACE移植要求

    MACE支持Tensorflow的depth_to_space和space_to_depth,以及strided_slice算子. 其中depth_to_space可以用来无平滑地进行上采样. spa ...

  10. python----数据驱动@ddt.file_data结合yaml文件的使用

    一.创建yaml文件1. 安装yaml模块 pip install pyyaml2. 新建yaml文件 右键任意文件夹-->New-->File,输入文件名并以.yaml或.yml结尾 二 ...