深入了解HTML中的编码规范

深入了解HTML中的编码规范

本文档的目标是使HTML代码风格保持一致,容易被理解和被维护,如果自己没有这种习惯,请好好选择你的IDE,别再用“文本编辑器”。

1 代码风格

1.1 缩进与换行

[强制] 使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符。

示例:

立即学习“前端免费学习笔记(深入)”;

  • first
  • second

[建议] 每行不得超过 120 个字符。

解释:

过长的代码不容易阅读与维护。但是考虑到 HTML 的特殊性,不做硬性要求,sublime、phpstorm、wenstorm等都有标尺功能。

1.2 命名

[强制] class 必须单词全字母小写,单词间以 - 分隔。

[强制] class 必须代表相应模块或部件的内容或功能,不得以样式信息进行命名。

示例:

立即学习“前端免费学习笔记(深入)”;

[强制] 元素 id 必须保证页面唯一。

解释:

同一个页面中,不同的元素包含相同的 id,不符合 id 的属性含义。并且使用 document.getElementById 时可能导致难以追查的问题。

[建议] id 建议单词全字母小写,单词间以 - 分隔。同项目必须保持风格一致。

[建议] idclass 命名,在避免冲突并描述清楚的前提下尽可能短。

示例:

立即学习“前端免费学习笔记(深入)”;

[强制] 同一页面,应避免使用相同的 nameid

解释:

IE 浏览器会混淆元素的 id 和 name 属性, document.getElementById 可能获得不期望的元素。所以在对元素的 id 与 name 属性的命名需要非常小心。

一个比较好的实践是,为 id 和 name 使用不同的命名法。

示例:

立即学习“前端免费学习笔记(深入)”;

// IE6 将显示 INPUTalert(document.getElementById('foo').tagName);

1.3 标签

[强制] 标签名必须使用小写字母。

示例:

立即学习“前端免费学习笔记(深入)”;

Hello StyleGuide!

Hello StyleGuide!

[强制] 对于无需自闭合的标签,不允许自闭合。

解释:

常见无需自闭合标签有input、br、img、hr等。

示例:

立即学习“前端免费学习笔记(深入)”;

[强制] 对 HTML5 中规定允许省略的闭合标签,不允许省略闭合标签。

示例:

立即学习“前端免费学习笔记(深入)”;

  • first
  • second
first second

[强制] 标签使用必须符合标签嵌套规则。

解释:

比如 div 不得置于 p 中,tbody 必须置于 table 中。

示例:

立即学习“前端免费学习笔记(深入)”;

[建议] HTML 标签的使用应该遵循标签的语义。

解释:

下面是常见标签语义

p – 段落

h1,h2,h3,h4,h5,h6 – 层级标题

strong,em – 强调

ins – 插入

del – 删除

abbr – 缩写

code – 代码标识

cite – 引述来源作品的标题

q – 引用

blockquote – 一段或长篇引用

ul – 无序列表

ol – 有序列表

dl,dt,dd – 定义列表

示例:

立即学习“前端免费学习笔记(深入)”;

Esprima serves as an important building block for some JavaScript language tools.

Esprima serves as an important building block for some JavaScript language tools.

[建议] 在 CSS 可以实现相同需求的情况下不得使用表格进行布局。

解释:

在兼容性允许的情况下应尽量保持语义正确性。对网格对齐和拉伸性有严格要求的场景允许例外,如多列复杂表单。

[建议] 标签的使用应尽量简洁,减少不必要的标签。

示例:

立即学习“前端免费学习笔记(深入)”;

@@##@@    @@##@@

1.4 属性

[强制] 属性名必须使用小写字母。

示例:

立即学习“前端免费学习笔记(深入)”;

...
...

[强制] 属性值必须用双引号包围。

解释:

不允许使用单引号,不允许不使用引号。

示例:

立即学习“前端免费学习笔记(深入)”;

[建议] 布尔类型的属性,建议不添加属性值。

示例:

立即学习“前端免费学习笔记(深入)”;

[建议] 自定义属性建议以 xxx- 为前缀,推荐使用 data-

解释:

使用前缀有助于区分自定义属性和标准定义的属性。

示例:

立即学习“前端免费学习笔记(深入)”;

    2 通用

    2.1 DOCTYPE

    [强制] 使用 HTML5doctype 来启用标准模式,建议使用大写的 DOCTYPE

    示例:

    立即学习“前端免费学习笔记(深入)”;

    
    

    [建议] 启用 IE Edge 和 Chrome Frame 模式。

    示例:

    立即学习“前端免费学习笔记(深入)”;

    
    

    [建议] 在 html 标签上设置正确的 lang 属性。

    解释:

    有助于提高页面的可访问性,如:让语音合成工具确定其所应该采用的发音,令翻译工具确定其翻译语言等。

    示例:

    立即学习“前端免费学习笔记(深入)”;

    
    

    [建议] 开启双核浏览器的 webkit 内核进行渲染。

    解释:

    见浏览器内核控制Meta标签说明文档 一文。

    示例:

    立即学习“前端免费学习笔记(深入)”;

    
    

    [建议] 开启浏览器的DNS预获取。

    解释:

    减少DNS请求次数、对DNS进行预获取。

    示例:

    立即学习“前端免费学习笔记(深入)”;

    
    

    2.2 编码

    [强制] 页面必须使用精简形式,明确指定字符编码。指定字符编码的 meta 必须是 head 的第一个直接子元素。

    解释:

    见 HTML5 Charset能用吗 一文。

    示例:

    立即学习“前端免费学习笔记(深入)”;

                        ......                ......    

    [建议] HTML 文件使用无 BOMUTF-8 编码。

    解释:

    UTF-8 编码具有更广泛的适应性。BOM 在使用程序或工具处理文件时可能造成不必要的干扰。

    2.3 CSS和JavaScript引入

    [强制] 引入 CSS 时必须指明 rel="stylesheet"

    示例:

    立即学习“前端免费学习笔记(深入)”;

    
    

    [建议] 引入 CSSJavaScript 时无须指明 type 属性。

    解释:

    text/csstext/javascript 是 type 的默认值。

    [建议] 展现定义放置于外部 CSS 中,行为定义放置于外部 JavaScript 中。

    解释:

    结构-样式-行为的代码分离,对于提高代码的可阅读性和维护性都有好处。

    [建议] 在 head 中引入页面需要的所有 CSS 资源。

    解释:

    在页面渲染的过程中,新的CSS可能导致元素的样式重新计算和绘制,页面闪烁。

    [建议] JavaScript 应当放在页面末尾,或采用异步加载。

    解释:

    将 script 放在页面中间将阻断页面的渲染。出于性能方面的考虑,如非必要,请遵守此条建议。

    示例:

    立即学习“前端免费学习笔记(深入)”;

            

    [强制] 引用静态资源的 URL 协议部分与页面相同,建议省略协议前缀。

    示例:

    立即学习“前端免费学习笔记(深入)”;

    
    

    3 Head

    3.1 title

    [强制] 页面必须包含 title 标签声明标题。

    [强制] title 必须作为 head 的直接子元素,并紧随 声明之后。

    解释:

    title 中如果包含 ascii 之外的字符,浏览器需要知道字符编码类型才能进行解码,否则可能导致乱码。

    示例:

    立即学习“前端免费学习笔记(深入)”;

                        页面标题

    4 图片

    [强制] 禁止 imgsrc 取值为空。延迟加载的图片也要增加默认的 src

    解释:

    src 取值为空,会导致部分浏览器重新加载一次当前页面,参考:https://developer.yahoo.com/performance/rules.html#emptysrc

    [建议] 避免为 img 添加不必要的 title 属性。

    解释:

    多余的 title 影响看图体验,并且增加了页面尺寸。

    [建议] 为重要图片添加 alt 属性。

    解释:

    可以提高图片加载失败时的用户体验。

    [建议] 添加 widthheight 属性,以避免页面抖动。

    [建议] 有下载需求的图片采用 img 标签实现,无下载需求的图片采用 CSS 背景图实现。

    解释:

    产品 logo、用户头像、用户产生的图片等有潜在下载需求的图片,以 img 形式实现,能方便用户下载。

    无下载需求的图片,比如:icon、背景、代码使用的图片等,尽可能采用 css 背景图实现。

    5 表单

    5.1 控件标题

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

    解释:

    有两种方式:

    将控件置于 label 内。

    label 的 for 属性指向控件的 id。

    推荐使用第一种,减少不必要的 id。如果 DOM 结构不允许直接嵌套,则应使用第二种。

    示例:

    立即学习“前端免费学习笔记(深入)”;

     

    5.2 按钮

    [强制] 使用 button 元素时必须指明 type 属性值。

    解释:

    button 元素的默认 type 为 submit,如果被置于 form 元素中,点击后将导致表单提交。为显示区分其作用方便理解,必须给出 type 属性。

    示例:

    立即学习“前端免费学习笔记(深入)”;

    [建议] 尽量不要使用按钮类元素的 name 属性。

    解释:

    由于浏览器兼容性问题,使用按钮的 name 属性会带来许多难以发现的问题。具体情况可参考此文。

    5.3 可访问性 (A11Y)

    [建议] 负责主要功能的按钮在 DOM 中的顺序应靠前。

    解释:

    负责主要功能的按钮应相对靠前,以提高可访问性。如果在 CSS 中指定了 float: right 则可能导致视觉上主按钮在前,而 DOM 中主按钮靠后的情况。

    示例:

    立即学习“前端免费学习笔记(深入)”;

    .buttons .button-group {    float: right;}
    .buttons button { float: right;}

    [建议] 当使用 JavaScript 进行表单提交时,如果条件允许,应使原生提交功能正常工作。

    解释:

    当浏览器 JS 运行错误或关闭 JS 时,提交功能将无法工作。如果正确指定了 form 元素的 action 属性和表单控件的 name 属性时,提交仍可继续进行。

    示例:

    立即学习“前端免费学习笔记(深入)”;

        

    [建议] 在针对移动设备开发的页面时,根据内容类型指定输入框的 type 属性。

    解释:

    根据内容类型指定输入框类型,能获得能友好的输入体验。

    示例:

    立即学习“前端免费学习笔记(深入)”;

    
    

    6 模板中的 HTML

    [建议] 模板代码的缩进优先保证 HTML 代码的缩进规则。

    示例:

    立即学习“前端免费学习笔记(深入)”;

    • {name}
    • {$item.name}

    [建议] 模板代码应以保证 HTML 单个标签语法的正确性为基本原则。

    示例:

    立即学习“前端免费学习笔记(深入)”;

    <li class=" selected">{type_name}<li >{type_name}

    [建议] 模板代码应以保证结束符的闭合名

    示例:

    立即学习“前端免费学习笔记(深入)”;

    • {name}:¥{unit_price}
    • {name}:¥{unit_price}

    [建议] 在循环处理模板数据构造表格时,若要求每行输出固定的个数,建议先将数据分组,之后再循环输出,模板只是做数据展示,别加插太多业务逻辑(其他数据构造同理)。

    示例:

    立即学习“前端免费学习笔记(深入)”;

    {name}:¥{unit_price}
    {name}:¥{unit_price}
    {name}:¥{price}
    {name}: ¥{unit_price} ¥{total_price}

    深入了解HTML中的编码规范深入了解HTML中的编码规范

    以上就是深入了解HTML中的编码规范的详细内容,更多请关注创想鸟其它相关文章!

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
    如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
    发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1548567.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2025年12月21日 20:02:45
    下一篇 2025年12月21日 20:02:57

    相关推荐

    • html文档中怎么把图片作为背景?

      在html中,可以通过给body标签设置css background或background-image样式来把图片作为背景,语法格式“background/background-image:url(“图片路径”);”。 (推荐教程:html教程) html文档中可以使用css…

      2025年12月21日
      000
    • 利用html实现进度条效果的方法

      html代码: 视频学习推荐:html视频教程 css代码: .progress { height:10px; background:#ebebeb; border-left:1px solid transparent; border-right:1px solid transparent; bor…

      2025年12月21日
      000
    • html中的三种布局分别是什么

      流动布局(html网页默认的布局方式) (视频教程分享:html视频教程) 特点: 1、块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。 立即学习“前端免费学习笔记(深入)”; 2、内联元素都会在所处的包含元素内从左到右水平分布显示。(内联元素…

      2025年12月21日
      000
    • HTML 中 meta 大全

      Meta标签是HTML语言head区的一个辅助性标签,它位于HTML文档头部的head标记和title标记之间,它提供用户不可见的信息。Meta : 即 元数据(Metadata)是数据的数据信息。 元数据可以被使用浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 Web 服务调用。…

      2025年12月21日
      000
    • html网页的主体标签是什么?

      html网页的主体标签是:body标签。body标签是一个网页的身体部分,用于定义网页的主体内容,是一个HTML文档中必须的部分。body元素中包含文档的所有内容(比如文本、超链接、图像、表格和列表等等)。 HTML的主体标记是 ,在和中放置的是网页中的所有内容,如文字、图片、链接、表格、表单等。 …

      2025年12月21日
      000
    • html中合并两个单元格应该使用的属性是什么

      html中合并两个单元格应该使用的属性是“colspan”,“colspan”属性定义单元格应该横跨的列数,其语法是“”。 推荐:《HTML视频教程》 html中合并两个单元格应该使用的属性是“colspan”。 colspan 属性定义单元格应该横跨的列数。 语法 立即学习“前端免费学习笔记(深入…

      2025年12月21日
      000
    • HTML元素语法介绍

      HTML 元素语法 (推荐教程:html教程) HTML 元素以开始标签起始 HTML 元素以结束标签终止 立即学习“前端免费学习笔记(深入)”; 元素的内容是开始标签与结束标签之间的内容 某些 HTML 元素具有空内容(empty content) 空元素在开始标签中进行关闭(以开始标签的结束而结…

      2025年12月21日
      000
    • html如何实现点击下载文件功能

      使用a标签完成点击下载文件功能 点击下载 这样当用户打开浏览器点击链接的时候就会直接下载文件。 (推荐教程:html教程) 但是有个情况,比如txt、png、jpg等这些浏览器支持直接打开的文件是不会执行下载任务的,而是会直接打开文件,这个时候就需要给a标签添加一个属性“download”。 立即学…

      2025年12月21日
      000
    • html实现实时效果查看功能

      html实现实时查看效果的功能 (推荐教程:html教程) 如下面代码,将能够打开新页面查看我们在文本输入域中的代码效果 M window.onload = function () { console.log(document); var runBtn = document.getElementBy…

      2025年12月21日 好文分享
      000
    • html元素的显示优先级是什么

      HTML元素的显示优先级 (推荐教程:html教程) 帧元素(frame)>HTML元素优先,表单元素总>非表单元素优先。 常见的非表单元素包括:链接标记(A),DIV标记,SPAN标记,TABLE标记等等。 立即学习“前端免费学习笔记(深入)”; 表单元素覆盖样式元素的根本原因在于HT…

      2025年12月21日
      000
    • html和url有什么区别么

      区别如下: (推荐教程:html教程) 一、定义不同 HTML是超文本标记语言(HyperText Mark-up Language); 立即学习“前端免费学习笔记(深入)”; URL是统一资源定位符(Uniform / Universal Resource Locator)。 二、用法不同 1、一…

      2025年12月21日
      000
    • html怎么实现左右滑动导航栏

      背景: 最近在写一个公众号项目时遇到需要动态生成菜单可滑动,在之前的android开发中实现通过v7包中提供的组件即可完成。那么,在网页的开发中需要如何实现这个功能呢? (推荐教程:html教程) 可以通过swiper.js来实现可滑动菜单。 立即学习“前端免费学习笔记(深入)”; 以下需引入swi…

      2025年12月21日
      000
    • html添加遮罩效果

      这里使用div+css的方式,加载中的图片是网上下载的动图,大家可以根据自己的需要进行修改。 (推荐教程:html教程) 实现代码: DIV CSS遮罩层 function showdiv() { document.getElementById(“bg”).style.display =”block…

      2025年12月21日
      000
    • 清除html页面缓存的方法

      在页面打开时由于缓存的存在刚刚更新的数据有时无法在页面及时得到刷新,当这个页面作为模式窗口被打开时问题更为明显。 (推荐教程:html教程) 那么我们该如何解决这个问题呢? 解决办法为: 立即学习“前端免费学习笔记(深入)”; (1)用HTML标签设置HTTP头信息 说明:HTTP头信息“Expir…

      2025年12月21日
      000
    • html中如何实现文本与标签居中

      实现方法: (推荐教程:html教程) 1、文本居中: text-align: center;line-height: 100px; (=height) 2、标签居中 立即学习“前端免费学习笔记(深入)”; margin: 0 auto; 其中0指的是margin-top:0 具体代码: 搜索论坛 …

      2025年12月21日
      000
    • 什么是对html的补充,可以使网页形式和内容分离?

      CSS是对html的补充,可以使网页形式和内容分离。css是用于增强控制网页样式并允许将样式信息与网页内容分离的一种标记性语言,它扩充了 HTML各标记的属性设定,使网页内容的视觉效果有更多变化。 层叠样式表(CSS)可以有效地对页面的布局、字体、背景、色彩和其他显示效果实现更加精确的控制。它是用于…

      2025年12月21日
      000
    • 手把手教你如何在HTML中引入外部JS文件

      在学习前端的时候,小伙伴们一定对于在HTML中如何引入外部JS文件感到困惑,下面小编教你HTML引入外部JS文件的方法。 在引入外部JS文件的情况下,不能在之间插入代码,插入的代码不执行,只执行引入的外部文件。 attack.html 代码: 系好安全带,准备启航 attack.js 代码 func…

      2025年12月21日
      000
    • 5种你一定不知道的HTML空格表示方法

      HTML提供了5种空格实体(space entity),它们拥有不同的宽度,非断行空格是常规空格的宽度,可运行于所有主流浏览器。其他几种空格在不同浏览器中宽度各异。 它叫不换行空格,全称No-Break Space,它是最常见和我们使用最多的空格,大多数的人可能只接触了 ,它是按下space键产生的…

      2025年12月21日
      000
    • onclick在html中用法是什么

      onclick在html中的用法是鼠标点击事件执行脚本,onclick是HTML标记对象的一个属性,当鼠标被单击时执行设定要执行的javascript脚本。 onclick在html中的用法是鼠标点击事件执行脚本,onclick是HTML标记对象的一个属性,当鼠标被单击时执行设定要执行的javasc…

      2025年12月21日
      000
    • 一分钟了解Html中CSS的三种链接方式

      在html中CSS有三种链接方式,你知道是哪三种吗?三种css文本的链接方式分别是内联定义、链入内部css、和链入外部css,下面我们一起看看吧。 css文本的链接方式有三种:分别是内联定义、链入内部css、和链入外部css 1.代码为: 内联定义内联定义内联定义内联定义 2.代码为: 立即学习“前…

      2025年12月21日
      000

    发表回复

    登录后才能评论
    关注微信