PHP中文网
搜索
logo
  • 社区
    • 文章
    • 合集
    • 问答
  • 学习
    • 课程
    • 编程词典
  • 工具库
    • 开发工具
    • 网站源码
    • PHP 库
    • JS特效
    • 网站素材
    • 扩展插件
  • AI工具
  • 休闲
    • 游戏下载
    • 游戏教程
Log in
logo
简体中文zh-cnEnglishen繁体中文zh-tw日本語ja한국어koMelayumsFrançaisfrDeutschde
logo
  • Bad article
  • My page title
  • All news articles
  • Avatar
  • Best practices
close
首页web前端H5教程前端编码风格规范之 HTML 规范

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
May 17, 2016 am 09:07 AM
ht

英文原文: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


  •       
  •    

  •    
  •    

  •       

    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 属性(
      )
    • 不使用行内脚本(<script>alert('no good')</script>)
    • 不使用表象元素(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.   <script><br> </script>
    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/
    声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    相关文章
    理解H5:含义和意义理解H5:含义和意义May 11, 2025 am 12:19 AM

    H5是HTML5,是HTML的第五个版本。HTML5提升了网页的表现力和交互性,引入了语义化标签、多媒体支持、离线存储和Canvas绘图等新特性,推动了Web技术的发展。

    H5:可访问性和网络标准合规性H5:可访问性和网络标准合规性May 10, 2025 am 12:21 AM

    无障碍访问和网络标准遵循对网站至关重要。1)无障碍访问确保所有用户都能平等访问网站,2)网络标准遵循提高网站的可访问性和一致性,3)实现无障碍访问需使用语义化HTML、键盘导航、颜色对比度和替代文本,4)遵循这些原则不仅是道德和法律要求,还能扩大用户群体。

    HTML中的H5标签是什么?HTML中的H5标签是什么?May 09, 2025 am 12:11 AM

    HTML中的H5标签是第五级标题,用于标记较小的标题或子标题。1)H5标签帮助细化内容层次,提升可读性和SEO。2)结合CSS可定制样式,增强视觉效果。3)合理使用H5标签,避免滥用,确保内容结构逻辑性。

    H5代码:Web结构的初学者指南H5代码:Web结构的初学者指南May 08, 2025 am 12:15 AM

    HTML5构建网站的方法包括:1.使用语义化标签定义网页结构,如、、等;2.嵌入多媒体内容,使用和标签;3.应用表单验证和本地存储等高级功能。通过这些步骤,你可以创建一个结构清晰、功能丰富的现代网页。

    H5代码结构:组织内容以实现可读性H5代码结构:组织内容以实现可读性May 07, 2025 am 12:06 AM

    通过合理的H5代码结构可以让页面在众多内容中脱颖而出。1)使用语义化标签如、、等组织内容,使结构清晰。2)通过CSS布局如Flexbox或Grid控制页面在不同设备上的呈现效果。3)实现响应式设计,确保页面在不同屏幕尺寸上自适应。

    H5与较旧的HTML版本:比较H5与较旧的HTML版本:比较May 06, 2025 am 12:09 AM

    HTML5(H5)与旧版本HTML的主要区别包括:1)H5引入了语义化标签,2)支持多媒体内容,3)提供离线存储功能。H5通过新标签和API增强了网页的功能和表现力,如和标签,提高了用户体验和SEO效果,但需注意兼容性问题。

    H5与HTML5:澄清术语和关系H5与HTML5:澄清术语和关系May 05, 2025 am 12:02 AM

    H5和HTML5的区别在于:1)HTML5是网页标准,定义结构和内容;2)H5是基于HTML5的移动网页应用,适用于快速开发和营销。

    HTML5特征:H5的核心HTML5特征:H5的核心May 04, 2025 am 12:05 AM

    HTML5的核心特性包括语义化标签、多媒体支持、表单增强和离线存储与本地存储。1.语义化标签如、等提高了代码可读性和SEO效果。2.多媒体支持通过和标签简化了嵌入媒体内容的过程。3.表单增强引入了新的输入类型和验证属性,简化了表单开发。4.离线存储和本地存储通过ApplicationCache和localStorage等提高了网页性能和用户体验。

    See all articles

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    Video Face Swap

    Video Face Swap

    使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

    显示更多

    热门文章

    如何修复KB5055612无法在Windows 10中安装?
    3 周前ByDDD
    <🎜>:种植花园 - 完整的突变指南
    3 周前ByDDD
    <🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
    3 周前By尊渡假赌尊渡假赌尊渡假赌
    北端:融合系统,解释
    3 周前By尊渡假赌尊渡假赌尊渡假赌
    Mandragora:巫婆树的耳语 - 如何解锁抓钩
    3 周前By尊渡假赌尊渡假赌尊渡假赌
    显示更多

    热工具

    Atom编辑器mac版下载

    Atom编辑器mac版下载

    最流行的的开源编辑器

    WebStorm Mac版

    WebStorm Mac版

    好用的JavaScript开发工具

    MinGW - 适用于 Windows 的极简 GNU

    MinGW - 适用于 Windows 的极简 GNU

    这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

    适用于 Eclipse 的 SAP NetWeaver 服务器适配器

    适用于 Eclipse 的 SAP NetWeaver 服务器适配器

    将Eclipse与SAP NetWeaver应用服务器集成。

    VSCode Windows 64位 下载

    VSCode Windows 64位 下载

    微软推出的免费、功能强大的一款IDE编辑器

    显示更多

    热门话题

    Java教程
    1667
    14
    CakePHP 教程
    1426
    52
    Laravel 教程
    1328
    25
    PHP教程
    1273
    29
    C# 教程
    1255
    24
    显示更多

    公益在线PHP培训,帮助PHP学习者快速成长!

    关于我们免责声明Sitemap

    © php.cn All rights reserved