讲师中心 微信公众号

扫码关注官方订阅号

注册 / 登录
首页
文章
后端开发 web前端 数据库 开发工具 php框架 常见问题 科技 Java 系统教程 电脑教程 硬件教程 手机教程 软件教程 游戏教程 自媒体 新闻
专题
后端开发 web前端 数据库 开发工具 php框架 科技 Java 系统教程 电脑教程 硬件教程 手机教程 软件教程 游戏教程 新闻
AI工具
AI 聊天问答 Agent智能体 AI 文本写作 AI 绘画作图 AI 设计工具 AI 视频创作 AI 音频制作 AI 办公学习 AI 编程开发 Prompt指令
学习
大前端 后端开发 数据库 移动端 运维开发 计算机基础
编程手册
大前端 后端开发 数据库 移动端 运维开发 计算机基础
下载
js特效 网站源码 工具下载 类库下载 网站素材 学习资源 插件扩展 手机游戏
最近更新
当前位置:首页 > web前端 > H5教程 >

正文

0

0

前端编码风格规范之 HTML 规范

php中文网

php中文网

发布时间:2016-05-17 09:07:52

|

2424人浏览过

|

来源于php中文网

原创

英文原文:Web Styleguide - Style guide to harmonize HTML, Javascript and CSS / SASS coding style

HTML 规范

文档类型

推荐使用 HTML5 的文档类型申明: .

(建议使用 text/html 格式的 HTML。避免使用 XHTML。XHTML 以及它的属性,比如 application/xhtml+xml 在浏览器中的应用支持与优化空间都十分有限)。

HTML 中最好不要将无内容元素[1] 的标签闭合,例如:使用
而非
.


HTML 验证

一般情况下,建议使用能通过标准规范验证的 HTML 代码,除非在性能优化和控制文件大小上不得不做出让步。

使用诸如 W3C HTML validator 这样的工具来进行检测。

规范化的 HTML 是显现技术要求与局限的显著质量基线,它促进了 HTML 被更好地运用。

不推荐

  1. Test
  2. This is only a test.
复制代码


推荐



  1. Test
  2. This is only a test.
复制代码

省略可选标签

HTML5 规范中规定了 HTML 标签是可以省略的。但从可读性来说,在开发的源文件中最好不要这样做,因为省略标签可能会导致一些问题。

省略一些可选的标签确实使得页面大小减少,这很有用,尤其是对于一些大型网站来说。为了达到这一目的,我们可以在开发后期对页面进行压缩处理,在这个环节中这些可选的标签完全就可以省略掉了。

脚本加载

出于性能考虑,脚本异步加载很关键。一段脚本放置在 内,比如 ,其加载会一直阻塞 DOM 解析,直至它完全地加载和执行完毕。这会造成页面显示的延迟。特别是一些重量级的脚本,对用户体验来说那真是一个巨大的影响。

异步加载脚本可缓解这种性能影响。如果只需兼容 IE10+,可将 HTML5 的 async 属性加至脚本中,它可防止阻塞 DOM 的解析,甚至你可以将脚本引用写在 里也没有影响。

如需兼容老旧的浏览器,实践表明可使用用来动态注入脚本的脚本加载器。你可以考虑 yepnope 或 labjs。注入脚本的一个问题是:一直要等到 CSS 对象文档已就绪,它们才开始加载(短暂地在 CSS 加载完毕之后),这就对需要及时触发的 JS 造成了一定的延迟,这多多少少也影响了用户体验吧。

终上所述,兼容老旧浏览器(IE9-)时,应该遵循以下最佳实践。

脚本引用写在 body 结束标签之前,并带上 async 属性。这虽然在老旧浏览器中不会异步加载脚本,但它只阻塞了 body 结束标签之前的 DOM 解析,这就大大降低了其阻塞影响。而在现代浏览器中,脚本将在 DOM 解析器发现 body 尾部的 script 标签才进行加载,此时加载属于异步加载,不会阻塞 CSSOM(但其执行仍发生在 CSSOM 之后)。

所有浏览器中,推荐


  1.   
  2.    
  3.   
  4.   
  5.    

  6.    
  7.   
复制代码

只在现代浏览器中,推荐


  1.   
  2.    
  3.    
  4.   
  5.   
  6.    
  7.   
复制代码

语义化

根据元素(有时被错误地称作“标签”)其被创造出来时的初始意义来使用它。打个比方,用 heading 元素来定义头部标题,p 元素来定义文字段落,用 a 元素来定义链接锚点,等等。

有根据有目的地使用 HTML 元素,对于可访问性、代码重用、代码效率来说意义重大。

以下示例列出了一些的语义化 HTML 主要情况:

不推荐

  1. My page title

  2.   
    Home

  3.   
    News

  4.   
    About




  •   

  •    
    All news articles

  •    

  •       

    Bad article


  •       
    Introduction sub-title

  •       
    This is a very bad example for HTML semantics

  •       
    I think I'm more on the side and should not receive the main credits

  •       

  •         This article was created by David
    2014-01-01 00:00

  •       

  •    


  •    

  •       Related sections: Events, Public holidays
  •    

  •   




  •   Copyright 2014
  • 复制代码
    推荐



    1.   
    2.   

      My page title






    3.   
    4.   

    5.    
    6. Home

    7.    
    8. News

    9.    
    10. About

    11.   




    12.   
    13.   

    14.    
    15.    

    16.       
    17.       

      All news articles


    18.    

    19.    
    20.    

    21.       
    22.       

    23.         
    24.         
      Good article

    25.         
    26.         Introduction sub-title
    27.       

    28.       
    29.       

    30.         

      this is a good example for html semantics


    31.       

  •       
  •       

  •         

    I think I'm more on the side and should not receive the main credits


  •       
  •       
  •       

  •         
  •         

    This article was created by David 1 month ago

    DoitPHP编码规范
    DoitPHP编码规范

    DoitPHP编码规范基于PHP PEAR编码规范及PHPDocumentor注释规范等编程原则组成,融合并提炼了开发人员长时间积累下来的成熟经验,意在帮助形成良好一致的编程风格。以达事半功倍的效果。为了与时俱进,根据客观需求,本文档会不定期更新。 作者:tommy

    下载

  •       
  •    

  •    
  •    

  •       

    Related sections: Events, Public holidays


  •    
  •   




  •   Copyright 2014
  • 复制代码
    多媒体回溯

    对页面上的媒体而言,像图片、视频、canvas 动画等,要确保其有可替代的接入接口。图片文件我们可采用有意义的备选文本(alt),视频和音频文件我们可以为其加上说明文字或字幕。

    提供可替代内容对可用性来说十分重要。试想,一位盲人用户如何能知晓一张图片是什么,要是没有 @alt 的话。

    (图片的 alt 属性是可不填写内容的,纯装饰性的图片就可用这么做:alt="")。

    不推荐

    1. 前端编码风格规范之 HTML 规范
    复制代码

    推荐

    1. Luke skywalker riding an alien horse
    复制代码

    尽量用 alt 标签去描述图片,设想你需要对于那些只能通过语音或者看不见图片的用户表达图片到底是什么。

    不推荐

    1. Header image
    复制代码

    推荐

    1. A huge spaceship that is approaching the earth
    复制代码

    关注点分离

    理解 web 中如何和为何区分不同的关注点,这很重要。这里的关注点主要指的是:信息(HTML 结构)、外观(CSS)和行为(JavaScript)。为了使它们成为可维护的干净整洁的代码,我们要尽可能的将它们分离开来。

    严格地保证结构、表现、行为三者分离,并尽量使三者之间没有太多的交互和联系。

    就是说,尽量在文档和模板中只包含结构性的 HTML;而将所有表现代码,移入样式表中;将所有动作行为,移入脚本之中。

    在此之外,为使得它们之间的联系尽可能的小,在文档和模板中也尽量少地引入样式和脚本文件。

    清晰的分层意味着:

    • 不使用超过一到两张样式表(i.e. main.css, vendor.css)
    • 不使用超过一到两个脚本(学会用合并脚本)
    • 不使用行内样式()
    • 不在元素上使用 style 属性(
      )
    • 不使用行内脚本()
    • 不使用表象元素(i.e. , ,
      , , )
    • 不使用表象 class 名(i.e. red, left, center)

    不推荐




    1.   
    2.   
    3.   
    4.   


    5.   


    6.   I'm a subtitle and I'm bold!
    7.   
      Dare you center me!

    8.   
    9.     alert('Just dont...');
    10.   
    11.   
      I'm important!


    复制代码

    推荐




    1.   
    2.   


    3.   
    4.   


    5.   
    6.   
      I'm a subtitle and I'm bold!

    7.   
    8.   Dare you center me!
    9.   
    10.   
      I'm important!


    11.   
    12.   

    复制代码

    HTML 内容至上

    不要让非内容信息污染了你的 HTML。现在貌似有一种倾向:通过 HTML 来解决设计问题,这是显然是不对的。HTML 就应该只关注内容。

    HTML 标签的目的,就是为了不断地展示内容信息。

    • 不要引入一些特定的 HTML 结构来解决一些视觉设计问题
    • 不要将 img 元素当做专门用来做视觉设计的元素

    以下例子展示了误将 HTML 用来解决设计问题的这两种情况:

    不推荐



    1.   
    2.   See the square next to me?
    复制代码
    1. .text-box > .square {
    2.   display: inline-block;
    3.   width: 1rem;
    4.   height: 1rem;
    5.   background-color: red;
    6. }
    复制代码

    推荐



    1.   See the square next to me?
    复制代码

    1. /* We use a :before pseudo element to solve the design problem of placing a colored square in front of the text content */
    2. .text-box:before {
    3.   content: "";
    4.   display: inline-block;
    5.   width: 1rem;
    6.   height: 1rem;
    7.   background-color: red;
    8. }
    复制代码

    图片和 SVG 图形能被引入到 HTML 中的唯一理由是它们呈现出了与内容相关的一些信息。

    不推荐



    1.   Square
    2.   See the square next to me?
    复制代码

    推荐



    1.   See the square next to me?
    复制代码
    1. /* We use a :before pseudo element with a background image to solve the problem */
    2. .text-box:before {
    3.   content: "";
    4.   display: inline-block;
    5.   width: 1rem;
    6.   height: 1rem;
    7.   background: url(square.svg) no-repeat;
    8.   background-size: 100%;
    9. }
    复制代码

    Type 属性

    省略样式表与脚本上的 type 属性。鉴于 HTML5 中以上两者默认的 type 值就是 text/css 和 text/javascript,所以 type 属性一般是可以忽略掉的。甚至在老旧版本的浏览器中这么做也是安全可靠的。

    不推荐


    复制代码

    推荐


    复制代码

    可用性

    如果 HTML5 语义化标签使用得当,许多可用性问题已经引刃而解。ARIA 规则在一些语义化的元素上可为其添上默认的可用性角色属性,使用得当的话已使网站的可用性大部分成立。假如你使用 nav, aside, main, footer 等元素,ARIA 规则会在其上应用一些关联的默认值。 更多细节可参考 ARIA specification

    另外一些角色属性则能够用来呈现更多可用性情景(i.e. role="tab")。

    Tab Index 在可用性上的运用

    检查文档中的 tab 切换顺序并传值给元素上的 tabindex,这可以依据元素的重要性来重新排列其 tab 切换顺序。你可以设置 tabindex="-1" 在任何元素上来禁用其 tab 切换。

    当你在一个默认不可聚焦的元素上增加了功能,你应该总是为其加上 tabindex 属性使其变为可聚焦状态,而且这也会激活其 CSS 的伪类 :focus。选择合适的 tabindex 值,或是直接使用 tabindex="0" 将元素们组织成同一 tab 顺序水平,并强制干预其自然阅读顺序。

    微格式在 SEO 和可用性上的运用

    如果 SEO 和可用性环境条件允许的话,建议考虑采用微格式。微格式是通过在元素标签上申明一系列特定数据来达成特定语义的方法。

    谷歌、微软和雅虎对如何使用这些额外的数据一定程度上的达成一致,如果正确的使用,这将给搜索引擎优化带来巨大的好处。

    你可以访问 schema.org 获得更多内容细节。

    看一个电影网站的简单例子:

    不带微格式


    1. Avatar


    2. Director: James Cameron (born August 16, 1954)
    3. Science fiction
    4. Trailer
    复制代码

    带有微格式


    1.   

      Avatar


    2.   

    3.   Director: James Cameron (born August 16, 1954)
    4.   

  •   Science fiction
  •   Trailer
  • 复制代码
    ID 和锚点

    通常一个比较好的做法是将页面内所有的头部标题元素都加上 ID. 这样做,页面 URL 的 hash 中带上对应的 ID 名称,即形成描点,方便跳转至对应元素所处位置。

    打个比方,当你在浏览器中输入 URL http://your-site.com/about#best-practices,浏览器将定位至以下 H3 上。

    1. Best practices

    复制代码

    格式化规则

    在每一个块状元素,列表元素和表格元素后,加上一新空白行,并对其子孙元素进行缩进。内联元素写在一行内,块状元素还有列表和表格要另起一行。

    (如果由于换行的空格引发了不可预计的问题,那将所有元素并入一行也是可以接受的,格式警告总好过错误警告)。

    推荐

    1.   Space, the final frontier.



    2.   
    3. Moe

    4.   
    5. Larry

    6.   
    7. Curly




    8.   

    9.    

    10.       

    11.       

    12.    

    13.   

    14.   

    15.    

    16.       

    17.       

    18.    

    19.   

    20. Income Taxes
      $ 5.00 $ 4.50
    复制代码

    HTML 引号

    使用双引号(“”) 而不是单引号(“) 。

    不推荐

    复制代码

    推荐

    复制代码

    [1]: 此处的空白元素指的是以下元素:area, base, br, col, command, embed, hr, img, input, keygen, link, meta, param, source, track, wbr

    via:http://roshanca.com/2014/web-develop-styleguide-html/

    相关文章

    H5 前端开发和小程序开发有什么区别

    H5页面制作可以自学吗

    H5页面制作的流程是怎样的

    H5页面制作的教程

    H5和JS的学习成本高吗?

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    上一篇:HTML5 Canvas中绘制矩形实例教程 下一篇:Web程序员最牛最实用的资源

    热门AI工具

    更多
    DeepSeek

    DeepSeek

    幻方量化公司旗下的开源大模型平台

    AI大模型

    开放平台

    豆包大模型

    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    AI大模型

    通义千问

    通义千问

    阿里巴巴推出的全能AI助手

    AI大模型

    腾讯元宝

    腾讯元宝

    腾讯混元平台推出的AI助手

    文档处理

    Excel 表格

    文心一言

    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    AI大模型

    中文写作

    讯飞写作

    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    中文写作

    写作工具

    即梦AI

    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    图片拼接

    图画生成

    ChatGPT

    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    AI大模型

    中文写作

    智谱清言 - 免费全能的AI助手

    智谱清言 - 免费全能的AI助手

    智谱清言 - 免费全能的AI助手

    AI大模型

    PC软件

    相关专题

    更多
    c++ 根号
    c++ 根号

    本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

    42

    2026.01.23

    c++空格相关教程合集
    c++空格相关教程合集

    本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

    46

    2026.01.23

    yy漫画官方登录入口地址合集
    yy漫画官方登录入口地址合集

    本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

    202

    2026.01.23

    漫蛙最新入口地址汇总2026
    漫蛙最新入口地址汇总2026

    本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

    341

    2026.01.23

    C++ 高级模板编程与元编程
    C++ 高级模板编程与元编程

    本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

    16

    2026.01.23

    php远程文件教程合集
    php远程文件教程合集

    本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

    100

    2026.01.22

    PHP后端开发相关内容汇总
    PHP后端开发相关内容汇总

    本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

    73

    2026.01.22

    php会话教程合集
    php会话教程合集

    本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

    75

    2026.01.22

    宝塔PHP8.4相关教程汇总
    宝塔PHP8.4相关教程汇总

    本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

    67

    2026.01.22

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板
    • [表单按钮]jQuery滑动解锁登录表单代码
    • [图片特效]jquery智能弹窗提醒
    • [图片特效]jQuery遮罩图片hover翻转效果
    • [图片特效]jQuery鼠标点击图片滑动切换特效
    • [图片特效]西山居首页jQuery焦点图代码
    • [表单按钮]jQuery评论框插入QQ表情代码
    • [图片特效]纯CSS3实现超酷幻灯片切换
    • [表单按钮]CSS3扁平化风格联系表单
    • [表单按钮]jQuery自定义添加删除表单代码
    • [图片特效]js循环滚动切换首页幻灯片
    • [电商源码]openaishop
    • [其它模板]思翔企(事)业单位文件柜 build 20080313
    • [企业站源码]雅龙智能装备工业设备类WordPress主题1.0
    • [电商源码]威发卡自动发卡系统
    • [电商源码]卡密分发系统
    • [电商源码]中华陶瓷网
    • [电商源码]简洁粉色食品公司网站
    • [电商源码]极速网店系统
    • [电商源码]淘宝妈妈_淘客推广系统
    • [电商源码]积客B2SCMS商城系统
    • [网站素材]货币金融科技金融海报设计下载
    • [网站素材]水墨冬季寒梅傲雪风景矢量模板
    • [网站素材]清新拼贴自然环保海报矢量模板
    • [网站素材]2026马年黑金贺卡矢量模板
    • [网站素材]INS风格快餐美食宣传模板设计下载
    • [网站素材]蓝色极简网球运动海报矢量模板
    • [网站素材]情人节超级大促竖版海报设计下载
    • [网站素材]美式复古手绘汉堡海报矢量模板
    • [网站素材]萌系卡通唐装小马插画矢量素材
    • [网站素材]超市购物宣传方形海报PSD源文件设计下载
    • [前端模板]驾照考试驾校HTML5网站模板
    • [前端模板]驾照培训服务机构宣传网站模板
    • [前端模板]HTML5房地产公司宣传网站模板
    • [前端模板]新鲜有机肉类宣传网站模板
    • [前端模板]响应式天气预报宣传网站模板
    • [前端模板]房屋建筑维修公司网站CSS模板
    • [前端模板]响应式志愿者服务网站模板
    • [前端模板]创意T恤打印店网站HTML5模板
    • [前端模板]网页开发岗位简历作品展示网页模板
    • [前端模板]响应式人力资源机构宣传网站模板

    相关下载

    更多
    DoitPHP编码规范

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    最新Python教程 从入门到精通
    最新Python教程 从入门到精通

    共4课时 | 20.4万人学习

    Node.js 教程
    Node.js 教程

    共57课时 | 9.3万人学习

    CSS3 教程
    CSS3 教程

    共18课时 | 4.8万人学习

    JavaScript ES5基础线上课程教学
    JavaScript ES5基础线上课程教学

    共6课时 | 10.9万人学习

    最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)
    最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)

    共79课时 | 151.6万人学习

    phpStudy极速入门视频教程
    phpStudy极速入门视频教程

    共6课时 | 53.4万人学习

    最新Python教程 从入门到精通
    最新Python教程 从入门到精通

    共4课时 | 20万人学习

    JavaScript ES5基础线上课程教学
    JavaScript ES5基础线上课程教学

    共6课时 | 10.9万人学习

    PHP新手语法线上课程教学
    PHP新手语法线上课程教学

    共13课时 | 0.9万人学习

    最新文章

    更多
    H5页面如何实现全屏滚动效果 全屏滚动H5实现方法大全
    H5页面如何实现动态内容加载效果 3种动态加载技术让你的H5页面活起来
    H5页面制作中如何提升页面安全性 H5安全防护的10个必备措施
    H5页面如何实现背景音乐循环播放 背景音乐无缝循环播放技术
    H5页面制作中如何设计高点击率按钮 提升按钮点击率的7个技巧
    H5页面如何实现自动轮播图效果 轮播图自动切换实现方案
    H5页面如何实现跨平台适配方案 一套代码适配多端的关键方法解析
    H5页面制作中如何管理多语言切换 多语言国际化实现完整流程
    H5页面制作中如何适配不同分辨率屏幕 多分辨率适配终极方案
    H5页面制作中如何嵌入地图定位服务 主流地图API接入方法详解
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号

    微信扫码
    关注PHP中文网服务号

    技术交流群

    QQ扫码
    加入技术交流群

    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • PHP学习

  • 技术支持

  • 返回顶部