书签 分享 收藏 举报 版权申诉 / 18

类型HTML5页面编码规范.docx

  • 文档编号:26783134
  • 上传时间:2023-06-22
  • 格式:DOCX
  • 页数:18
  • 大小:21.43KB

--bad-->

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

解释:

同一个页面中,不同的元素包含相同的id,不符合id的属性含义。

并且使用document.getElementById时可能导致难以追查的问题。

[建议]id建议单词全字母小写,单词间以-分隔。

同项目必须保持风格一致。

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

示例:

--good-->

--bad-->

--good-->

--bad-->

--good-->

--bad-->

[强制]禁止为了hook脚本,创建无样式信息的class。

解释:

不允许class只用于让JavaScript选择某些元素,class应该具有明确的语义和样式。

否则容易导致cssclass泛滥。

使用id、属性选择作为hook是更好的方式。

[强制]同一页面,应避免使用相同的name与id。

解释:

IE浏览器会混淆元素的id和name属性,document.getElementById可能获得不期望的元素。

所以在对元素的id与name属性的命名需要非常小心。

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

示例:

2.3标签

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

示例:

--good-->

HelloStyleGuide!

--bad-->

HelloStyleGuide!

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

解释:

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

示例:

--good-->

--bad-->

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

解释:

对代码体积要求非常严苛的场景,可以例外。

比如:

第三方页面使用的投放系统。

示例:

--good-->

--bad-->

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

解释:

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

详细的标签嵌套规则参见HTMLDTD中的Elements定义部分。

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

解释:

下面是常见标签语义

∙p-段落

∙h1,h2,h3,h4,h5,h6-层级标题

∙strong,em-强调

∙ins-插入

∙del-删除

∙abbr-缩写

∙code-代码标识

∙cite-引述来源作品的标题

∙q-引用

∙blockquote-一段或长篇引用

∙ul-无序列表

∙ol-有序列表

∙dl,dt,dd-定义列表

示例:

--good-->

EsprimaservesasanimportantbuildingblockforsomeJavaScriptlanguagetools.

--bad-->

EsprimaservesasanimportantbuildingblockforsomeJavaScriptlanguagetools.

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

解释:

在兼容性允许的情况下应尽量保持语义正确性。

对网格对齐和拉伸性有严格要求的场景允许例外,如多列复杂表单。

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

示例:

--good-->

--bad-->

2.4属性

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

示例:

--good-->

...

--bad-->

...

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

解释:

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

示例:

--good-->

--bad-->

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

示例:

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

解释:

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

示例:

3通用

3.1DOCTYPE

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

示例:

DOCTYPEhtml>

[建议]启用IEEdge模式。

示例:

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

解释:

有助于提高页面的可访问性,如:

让语音合成工具确定其所应该采用的发音,令翻译工具确定其翻译语言等。

由于历史原因,有时候不得不继续使用zh-CN。

比如中文维基百科,沿用了传统的zh-CN/zh-HK/zh-SG/zh-TW(按照标准应该使用zh-cmn-Hans-CN、zh-cmn-Hant-HK、zh-cmn-Hans-SG、zh-cmn-Hant-TW)。

这时候,合理的软件行为,是将zh-CN等转化为zh-cmn-Hans(即转化为最常见的误用所对应的实际标准写法)。

SelectorsLevel4已经加入了对BCP47高级匹配算法的支持,即支持:

lang(*-Hans)的写法。

语言的标签表示法的国际标准是RFC4646

示例:

简体中文

繁体中文

3.2编码

[强制]页面必须使用精简形式,明确指定字符编码。

指定字符编码的meta必须是head的第一个直接子元素。

解释:

见HTML5Charset能用吗一文。

示例:

......

......

[建议]HTML文件使用无BOM的UTF-8编码。

解释:

UTF-8编码具有更广泛的适应性。

BOM在使用程序或工具处理文件时可能造成不必要的干扰。

3.3CSS和JavaScript引入

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

示例:

[建议]引入CSS和JavaScript时无须指明type属性。

解释:

text/css和text/javascript是type的默认值。

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

解释:

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

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

解释:

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

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

解释:

将script放在页面中间将阻断页面的渲染。

出于性能方面的考虑,如非必要,请遵守此条建议。

示例:

--alotofelements-->

[建议]移动环境或只针对现代浏览器设计的Web应用,如果引用外部资源的URL协议部分与页面相同,建议省略协议前缀。

解释:

使用protocol-relativeURL引入CSS,在IE7/8下,会发两次请求。

是否使用protocol-relativeURL应充分考虑页面针对的环境。

示例:

4head

4.1title

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

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

解释:

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

示例:

页面标题

4.2favicon

[强制]保证favicon可访问。

解释:

在未指定favicon时,大多数浏览器会请求WebServer根目录下的favicon.ico。

为了保证favicon可访问,避免404,必须遵循以下两种方法之一:

1.在WebServer根目录放置favicon.ico文件。

2.使用link指定favicon。

示例:

4.3viewport

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

解释:

viewportmetatag可以设置可视区域的宽度和初始缩放大小,避免在移动设备上出现页面展示不正常。

比如,在页面宽度小于980px时,若需iOS设备友好,应当设置viewport的width值来适应你的页面宽度。

同时因为不同移动设备分辨率不同,在设置时,应当使用device-width和device-height变量。

另外,为了使viewport正常工作,在页面容样式布局设计上也要做相应调整,如避免绝对定位等。

关于viewport的更多介绍,可以参见SafariWebContentGuide的介绍

5图片

[强制]禁止img的src取值为空。

延迟加载的图片也要增加默认的src。

解释:

src取值为空,会导致部分浏览器重新加载一次当前页面,参考:

https:

//developer../performance/rules.html#emptysrc

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

解释:

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

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

解释:

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

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

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

解释:

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

2.无下载需求的图片,比如:

icon、背景、代码使用的图片等,尽可能采用css背景图实现。

6表单

6.1控件标题

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

解释:

有两种方式:

1.将控件置于label。

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

推荐使用第一种,减少不必要的id。

如果DOM结构不允许直接嵌套,则应使用第二种。

示例:

用户名:

6.2按钮

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

解释:

button元素的默认type为submit,如果被置于form元素中,点击后将导致表单提交。

为显示区分其作用方便理解,必须给出type属性。

示例:

提交

取消

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

解释:

由于浏览器兼容性问题,使用按钮的name属性会带来许多难以发现的问题。

具体情况可参考此文。

6.3可访问性(A11Y)

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

解释:

负责主要功能的按钮应相对靠前,以提高可访问性。

如果在CSS中指定了float:

right则可能导致视觉上主按钮在前,而DOM中主按钮靠后的情况。

示例:

--good-->

提交

取消

--bad-->

取消

提交

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

解释:

当浏览器JS运行错误或关闭JS时,提交功能将无法工作。

如果正确指定了form元素的action属性和表单控件的name属性时,提交仍可继续进行。

示例:

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

解释:

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

示例:

7多媒体

[建议]当在现代浏览器中使用audio以及video标签来播放音频、视频时,应当注意格式。

解释:

音频应尽可能覆盖到如下格式:

∙MP3

∙WAV

∙Ogg

视频应尽可能覆盖到如下格式:

∙MP4

∙WebM

∙Ogg

[建议]在支持HTML5的浏览器中优先使用audio和video标签来定义音视频元素。

[建议]使用退化到插件的方式来对多浏览器进行支持。

示例:

[建议]只在必要的时候开启音视频的自动播放。

[建议]在object标签部提供指示浏览器不支持该标签的说明。

示例:

DONOTSUPPORTTHISTAG

8模板中的HTML

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

示例:

--good-->

{if$display==true}

{/if}

--bad-->

{if$display==true}

{/if}

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

示例:

--good-->

{$item.type_name}

--bad-->

{$item.type_name}

[建议]在循环处理模板数据构造表格时,若要求每行输出固定的个数,建议先将数据分组,之后再循环输出。

示例:

--good-->

{foreach$item_listas$item_group}

{foreach$item_groupas$item}

{/foreach}

{/foreach}

{$item.name}

--bad-->

{foreach$item_listas$item}

{if$itemiterationisdivby5}

{/if}

{/foreach}

{$item.name}

举报
举报
版权申诉
版权申诉
word格式文档无特别注明外均可编辑修改;预览文档经过压缩,下载后原文更清晰! 立即下载
配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
HTML5 页面 编码 规范
提示  冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:HTML5页面编码规范.docx
链接地址:https://www.bdocx.com/doc/26783134.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2022 冰点文档网站版权所有

经营许可证编号:鄂ICP备2022015515号-1

收起
展开