HTML开发规范

最后更新于:2022-04-01 06:03:58

> 参考:[华南城网前端编码规范 1.0](http://res.csc86.com/readme/%E5%8D%8E%E5%8D%97%E5%9F%8E%E7%BD%91%E5%89%8D%E7%AB%AF%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83%201.0.html) xhtml**区分大小写**,xhtml要求标签名、属性名、值**都要小写**,并且要有双引号和标签闭合。 因为XHTML文档是XML应用产物,**XML是区分大小写的**,所以`<br>`和`<BR>`会被认为是两种不同的标签。 > **`注意`:HTML5不区分大小写!** [TOC] ## 1、DOCTYPE         页面文档类型统一使用HTML5 DOCTYPE. 代码如下: ~~~ <!DOCTYPE html> ~~~ ## 2、编码         声明方法遵规循HTML5的范. 代码如下: ~~~ <meta charset="utf-8" /> ~~~ ## 3、语义化         使用符合语义的标签书写 HTML 文档, 选择恰当的元素表达所需的含义。 * **结构性元素** * `p` 表示段落. 只能包含内联元素, 不能包含块级元素; * `li` 本身无特殊含义, 可用于布局. 几乎可以包含任何元素; * `br` 表示换行符; * `hr` 表示水平分割线; * `h1`-`h6` 表示标题. 其中 h1 用于表示当前页面最重要的内容的标题; * `blockquote` 表示引用, 可以包含多个段落. 请勿纯粹为了缩进而使用blockquote, 大部分浏览器默认将 blockquote 渲染为带有左右缩进; * ``pre`` 表示一段格式化好的文本; * **头部元素** * `title` 每个页面必须有且仅有一个 title 元素; * `base` 可用场景:首页、频道等大部分链接都为新窗口打开的页面; * `link `用于引入 css 资源时, 可省去 media(默认为all) 和 type(默认为text/css) 属性; * `style` `type` 默认为 text/css, 可以省去; * `script` `type` 属性可以省去; 不赞成使用lang属性; 不要使用古老的<!– //–>这种hack脚本, 它用于阻止第一代浏览器(Netscape 1和Mosaic)将脚本显示成文字; * `noscript` 在用户代理不支持 JavaScript 的情况下提供说明; * **文本元素** * `a` 存在 href 属性时表示链接, 无 href 属性但有 name 属性表示锚点; * `em,strong` em 表示句意强调, 加与不加会引起语义变化, 可用于表示不同的心情或语调; strong 表示重要性强调, 可用于局部或全局, strong强调的是重要性, 不会改变句意; * `abbr` 表示缩写; * `sub,sup` 主要用于数学和化学公式, sup还可用于脚注; * `span` 本身无特殊含义; * `ins,del` 分别表示从文档中增加(插入)和删除; * **媒体元素** * `img` 请勿将img元素作为定位布局的工具, 不要用他显示空白图片; 必要时给img元素增加alt属性; * `object` 可以用来插入Flash; * **列表元素** * `dl` 表示关联列表, dd是对dt的解释; dt和dd的对应关系比较随意:一个dt对应多个dd、多个dt对应一个dd、多个dt对应多个dd, 都合法; 可用于名词/单词解释、日程列表、站点目录; * `ul` 表示无序列表; * `ol` 表示有序列表, 可用于排行榜等; * `li` 表示列表项, 必须是ul/ol的子元素; * **表单元素** * 推荐使用 `button` 代替 input, 但必须声明 type; * 推荐使用 `fieldset`, `legend` 组织表单; * 表单元素的 `name` 不能设定为 action, enctype, method, novalidate, target, submit 会导致表单提交混乱; ## 4、大小写,属性值 元素的标签和属性名必须小写, 属性值必须加双引号。 ## 5、html模板 ```HTML <!DOCTYPE HTML> <html lang="zh-cmn-hans"> <head> <meta charset="utf-8"> <meta name="renderer" content="webkit|ie-comp|ie-stand"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no" /> <title>title不可缺少,控制在25个字、50个字节以内。“二级栏目 - 一级栏目 - 网站名称”。</title> <meta name="keywords" content="关键词,5个左右,单个8汉字以内"> <meta name="description" content="网站描述,字数尽量空制在80个汉字,160个字符以内!"> <link rel="Bookmark" href="/favicon.ico" > <link rel="Shortcut Icon" href="/favicon.ico" /> <!--[if lt IE 9]> <script> (function(){var e="abbr, article, aside, audio, canvas, datalist, details, dialog, eventsource, figure, footer, header, hgroup, mark, menu, meter, nav, output, progress, section, time, video".split(', ');var i=e.length;while(i--){document.createElement(e[i])}})() </script> <![endif]--> <link href="http://www.a.com/css/style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="http://libs.baidu.com/jquery/1.8.2/jquery.js"></script> </head> <body> <header> <!--头部--> </header> <div> <!--内容--> </div> <footer> <!--头部--> </footer> <!--End of Footer--> <script type="text/javascript" src="http://www.a.com/Lib/a.min.js"></script> <!--下方是cnzz统计代码,请在自己项目中干掉--> <script type="text/javascript">var cnzz_protocol= ...</script> </body> </html> ```      
';