返回顶部
首页 > 资讯 > 精选 >如何避免出现HTML5错误
  • 494
分享到

如何避免出现HTML5错误

2023-06-09 15:06:42 494人浏览 安东尼
摘要

如何避免出现HTML5错误?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、不要使用section作为div的替代品人们在标签使用中最常见到的错误之一就是随意将

如何避免出现HTML5错误?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

一、不要使用section作为div的替代品

人们在标签使用中最常见到的错误之一就是随意将html5的<section>等价于<div>&mdash;&mdash;具体地说,就是直接用作替代品(用于样式)。在XHTML或者HTML4中,我们常看到这样的代码:

<!-- HTML 4-style code --><div id="wrapper">    <div id="header">        <h2>My super duper page</h2>        Header content  </div>    <div id="main">        Page content    </div>    <div id="secondary">        Secondary content   </div>    <div id="footer">        Footer content  </div></div>

而现在在HTML5中,会是这样:

请不要复制这些代码!这是错误的!

<section id="wrapper">    <header>        <h2>My super duper page</h2>        <!-- Header content -->    </header>    <section id="main">        <!-- Page content -->    </section>    <section id="secondary">        <!-- Secondary content -->    </section>    <footer>        <!-- Footer content -->    </footer></section>

这样使用并不正确:**

并不是样式容器。**section元素表示的是内容中用来帮助构建文档概要的语义部分。它应该包含一个头部。如果你想找一个用作页面容器的元素(就像HTML或者XHTML的风格),那么考虑如Kroc Camen所说,直接把样式写到body元素上吧。如果你仍然需要额外的样式容器,还是继续使用div吧。

基于上述思想,下面才是正确的使用HTML5和一些ARIA roles特性的例子(注意,根据你自己的设计,你也可能需要加入div)

<body><header>    <h2>My super duper page</h2>    <!-- Header content --></header><div role="main">    <!-- Page content --></div><aside role="complementary">    <!-- Secondary content --></aside><footer>    <!-- Footer content --></footer></body>

二、只在需要的时候使用header和hgroup

写不需要写的标签当然是毫无意义的。不幸的是,我经常看到header和hgroup被无意义的滥用。你可以阅读一下关于header和hgroup元素的两篇文章做一个详细的了解,其中内容我简单总结如下:

  • header元素表示的是一组介绍性或者导航性质的辅助文字,经常用作section的头部

  • 当头部有多层结构时,比如有子头部,副标题,各种标识文字等,使用hgroup将h2-h7元素组合起来作为section的头部

  • header的滥用

由于header可以在一个文档中使用多次,可能使得这样代码风格受到欢迎:
请不要复制这段代码!此处并不需要header &ndash;>

<header>        <h2>My best blog post</h2>    </header>    <!-- Article content --></article>

如果你的header元素只包含一个头部元素,那么丢弃header元素吧。既然article元素已经保证了头部会出现在文档概要中,而header又不能包含多个元素(如上文所定义的),那么为什么要写多余的代码。简单点写成这样就行了:

<article>    <h2>My best blog post</h2>    <!-- Article content --></article>

的错误使用

在headers这个主题上,我也经常看到hgroup的错误使用。有时候不应该同时使用hgroup和header:

  • 如果只有一个子头部

  • 如果hgroup自己就能工作的很好。。。这不废话么

第一个问题一般是这样的:

请不要复制这段代码!此处不需要hgroup &ndash;>    <hgroup>        <h2>My best blog post</h2>    </hgroup>    <p>by Rich Clark</p></header>

此例中,直接拿掉hgroup,让heading果奔吧。

<header>    <h2>My best blog post</h2>    <p>by Rich Clark</p></header>

第二个问题是另一个不必要的例子:

请不要复制这段代码!此处不需要header &ndash;>

<hgroup>        <h2>My company</h2>        <h3>Established 1893</h3>    </hgroup></header>

如果header唯一的子元素是hgroup,那还要header干神马?如果header中没有其他的元素(比如多个hgroup),还是直接拿掉header吧。

<hgroup>    <h2>My company</h2>    <h3>Established 1893</h3></hgroup>

三、不要把所有列表式的链接放在nav里

随着HTML5引入了30个新元素(截止到原文发布时),我们在构造语义化和结构化的标签时的选择也变得有些不慎重。也就是说,我们不应该滥用超语义化的元素。不幸的是,nav就是这样一个被滥用的例子。nav元素的规范描述如下:
nav元素表示页面中链接到其他页面或者本页面其他部分的区块;包含导航连接的区块。
 

注意:不是所有页面上的链接都需要放在nav元素中&mdash;&mdash;这个元素本意是用作主要的导航区块。举个具体的例子,在footer中经常会有众多的链接,比如服 务条款,主页,版权声明页等等。footer元素自身已经足以应付这些情况,虽然nav元素也可以用在这里,但通常我们认为是不必要的。
 

关键的词语是“主要的”导航。当然我们可以互相喷上一整天什么叫做“主要的”。而我个人是这样定义的:

  • 主要的导航

  • 站内搜索

  • 二级导航(略有争议)

  • 页面内导航(比如很长的文章)

  • 既然并没有绝对的对错,所以根据一个非正式投票以及我自己的解释,以下的情况,不管你放不放,我反正不放在中:

  • 分页控制

  • 社交链接(虽然有些社交链接也是主要导航,比如“关于”“收藏”)

  • 博客文章的标签

  • 博客文章的分类

  • 三级导航

  • 过长的footer

  • 如果你不确定是否要将一系列的链接放在nav中,问你自己:“它是主要的导航吗?”为了帮助你回答这个问题,考虑以下首要原则:

  • 如果使用section和hx也同样合适,那么不要用nav &mdash; Hixie on IRC

为了方便访问,你会在某个“快捷跳转”中给这个nav标签加一个链接吗?

如果这些问题的答案是“不”,那就跟鞠个躬,然后独自离开吧。

四、figure元素的常见错误

figure以及fiGCaption的正确使用,确实是难以驾驭。让我们来看看一些常见的错误,

不是所有的图片都是figure

上文中,我曾告诉各位不要写不必要的代码。这个错误也是同样的道理。我看到很多网站把所有的图片都写作figure。看在图片的份上请不要给它加额外的标签了。你只是让你自己蛋疼,而并不能使你的页面内容更清晰。
规范中将figure描述为“一些流动的内容,有时候会有包含于自身的标题说明。一般在文档流中会作为独立的单元引用。”这正是figure的美妙之处&mdash;&mdash;它可以从主内容页移动到sidebar中,而不影响文档流。
这些问题也包含在之前提到的HTML5 element flowchart中。

如果纯粹只是为了呈现的图,也不在文档其他地方引用,那就绝对不是

。其他视情况而定,但一开始可以问自己:“这个图片是否必须和上下文有关?”如果不是,那可能也不是(也许是个)。继续:“我可以把它移动到附录中吗?”如果两个问题都符合,则它可能是。
LoGo并不是figure

进一步的说,logo也不适用于figure。下面是我常见的一些代码片段:

<!-- 请不要复制这段代码!这是错的 --><header>    <h2>        <figure> ![My company](/img/mylogo.png) </figure>        My company name </h2></header><!-- 请不要复制这段代码!这也是错的 --><header>    <figure> ![My company](/img/mylogo.png) </figure></header>

没什么好说的了。这就是很普通的错误。我们可以为logo是否应该是H1标签而互相喷到牛都放完回家了,但这里不是我们讨论的焦点。真正的问题在于figure元素的滥用。figure只应该被引用在文档中,或者被section元素围绕。我想你的logo并不太可能以这样的方式引用吧。很简单,请勿使用figure。你只需要这样做:

<header>    <h2>My company name</h2>    <!-- More stuff in here --></header>

Figure也不仅仅只是图片

另一个常见的关于figure的误解是它只被图片使用。figure可以是视频,音频,图表,一段引用文字,表格,一段代码,一段散文,以及任何它们或者其他的组合。不要把figure局限于图片。WEB标准的职责是精确的用标签描述内容。

五、不要使用不必要的type属性

这是个常见的问题,但并不是一个错误,我认为我们应该通过最佳实践来避免这种风格。
 

在HTML5中,script和style元素不再需要type属性。然而这些很可能会被你的CMS自动加上,所以要移除也不是那么的轻松。但如果你是手工编码或者你完全可以控制你的模板的话,那真的没有什么理由再去包含type属性。所有的浏览器都认为脚本是javascript而样式是CSS样式,你没必要再多此一举了。

<!-- 请不要复制这段代码!它太冗余了! --><link type="text/css" rel="stylesheet" href="css/styles.css" /><script type="text/javascript" src="js/scripts" /></script>

其实只需要这样写:

<link rel="stylesheet" href="css/styles.css" /><script src="js/scripts" /></script>

甚至指定字符集的代码都可以省略掉。Mark Pilgrim在Dive into HTML5的语义化一章中作出了解释。

六、form属性的错误使用

HTML5引入了一些fORM的新属性,以下是一些使用上的注意事项:

布尔属性

一些多媒体元素和其他元素也具有布尔属性。这里所说的规则也同样适用。
有一些新的form属性是布尔型的,意味着它们只要出现在标签中,就保证了相应的行为已经设置。这些属性包括:

  • autofocus

  • autocomplete

  • required

坦白的说,我很少看到这样的。以required为例,常见的是下面这种:

<!-- 请不要复制这段代码! 这是错的! --><input type="email" name="email" required="true" /><!-- 另一个错误的例子 --><input type="email" name="email" required="1" />

严格来说,这并没有大碍。浏览器的HTML解析器只要看到required属性出现在标签中,那么它的功能就会被应用。但是如果你反过来写equired=”false”呢?

<!-- 请不要复制这段代码! 这是错的! --><input type="email" name="email" required="false" />

解析器仍然会将required属性视为有效并执行相应的行为,尽管你试着告诉它不要去执行了。这显然不是你想要的。

有三种有效的方式去使用布尔属性。(后两种只在xthml中有效)

  • required

  • required=””

  • required=”required”

上述例子的正确写法应该是:

<input type="email" name="email" required />

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: 如何避免出现HTML5错误

本文链接: https://lsjlt.com/news/256613.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何避免出现HTML5错误
    如何避免出现HTML5错误?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、不要使用section作为div的替代品人们在标签使用中最常见到的错误之一就是随意将...
    99+
    2023-06-09
  • 如何避免 PHP shell 缓存路径出现错误?
    PHP shell 缓存路径出现错误是一个常见的问题,特别是在使用 PHP 编写的网站或应用程序中。这个问题的原因是因为 PHP shell 缓存路径被设置为了错误的路径,导致 PHP 无法找到缓存文件,进而导致程序出现错误。本文将介绍如何...
    99+
    2023-06-26
    shell 缓存 path
  • JavaScript错误怎么避免
    这篇文章主要介绍“JavaScript错误怎么避免”,在日常操作中,相信很多人在JavaScript错误怎么避免问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript错误怎么避免”的疑惑有所帮助!...
    99+
    2023-06-04
  • 如何在Java中避免出现NullPointerException
    今天就跟大家聊聊有关如何在Java中避免出现NullPointerException,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java中避免NullPointerExceptio...
    99+
    2023-05-31
    java nullpointerexception ava
  • Node.js OAuth:常见的错误及如何避免
    1. OAuth 流程配置不当 错误原因:配置不当的 OAuth 流程会导致应用程序无法正确授权。 避免方法:仔细遵循 OAuth 供应商提供的文档,确保正确设置客户端 ID、客户端密钥、回调 URL 和权限范围。 代码示例: cons...
    99+
    2024-02-19
    Node.js OAuth 错误 授权 安全性
  • 如何避免 Discuz 密码错误的发生?
    为了避免 Discuz 密码错误的发生,我们需要注意一些关键点,并通过代码示例来展示如何提高密码安全性和减少密码错误的可能性。 使用强密码:密码应包含至少8个字符,包括大写字母、小写字...
    99+
    2024-03-02
    - 错误处理 - 密码安全 - 用户验证
  • Golang Gin解析JSON请求数据避免出现EOF错误
    目录环境1. 结论2. EOF错误复现3. ShouldBindBodyWith 源码分析JSON是前后端交互的重要数据类型之一,使用Gin Web框架可以很方便地将HTTP请求报文...
    99+
    2024-04-02
  • PHP 日志打包索引,如何避免错误?
    在日常开发中,日志是一个非常重要的工具,它可以帮助我们快速定位问题,解决问题。而对于大型项目来说,日志量非常庞大,如果不加以处理,不仅会占用大量的磁盘空间,还会降低系统的性能。因此,我们需要对日志进行打包和索引,以避免错误的发生。 一、P...
    99+
    2023-09-18
    日志 打包 索引
  • Java 打包对象:如何避免常见错误?
    在 Java 程序中,我们经常需要将多个对象打包成一个对象进行传输或存储,这个过程被称为“打包”。打包的目的是为了方便传输和存储,同时也可以提高程序的效率。但是,在打包的过程中,我们经常会遇到一些常见的错误,比如序列化错误、反序列化错误等...
    99+
    2023-10-04
    打包 对象 学习笔记
  • 如何在 Go 中避免数组越界错误?
    在 Go 中,数组越界错误是一个常见的错误类型。当我们访问数组时,如果下标超出了数组的范围,就会发生数组越界错误。这种错误会导致程序崩溃,给我们带来不必要的麻烦。本文将探讨如何在 Go 中避免数组越界错误。 一、使用 for 循环 在 Go...
    99+
    2023-08-18
    开发技术 数组 关键字
  • 如何避免常见的技术性SEO错误
    要避免常见的技术性SEO错误,关键步骤包括:1、正确使用robots.txt文件:确保搜索引擎能够访问重要页面;2、优化URL结构:使用简洁、描述性强的URL;3、解决重复内容:通过Canonical标签或301重定向来处理;4、提高网站速...
    99+
    2023-10-29
    常见 错误 SEO
  • JavaScript MVVM 架构:常见错误及如何避免
    1. 双向绑定过多 双向绑定在 MVVM 中非常方便,但过度使用可能会导致性能问题。如果 ViewModel 和 View 之间有大量关联,则每次对 ViewModel 进行修改都会触发 View 的更新,从而导致不必要的重新渲染。 如...
    99+
    2024-03-03
    MVVM、JavaScript、错误、调试、最佳实践
  • 如何避免golang函数闭包中的错误
    常见的闭包错误包括修改捕获变量和意外闭包。避免这些错误的方法包括:使用值传递,明确传递变量副本;使用显式转换,避免捕获变量的地址。这些措施确保了闭包不会意外修改外部变量或长时间引用变量。...
    99+
    2024-04-23
    golang 闭包
  • 如何避免 PHP 函数中的常见错误?
    php 函数中的常见错误包括参数错误、类型错误、返回值错误、未处理的异常和语法错误。可以通过定义函数签名、检查函数参数、验证参数类型、处理异常和编写单元测试来避免这些错误。 如何避免 ...
    99+
    2024-04-26
    php 错误处理
  • 十大JavaScript错误有哪些以及如何避免
    今天就跟大家聊聊有关十大JavaScript错误有哪些以及如何避免,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。为了回馈我们的开发人员社区,我们查看...
    99+
    2024-04-02
  • PHP 同步 Linux 框架:如何避免常见错误?
    PHP 是一种广泛使用的编程语言,而 Linux 是一种广泛使用的操作系统。当这两个强大的技术组合在一起时,我们就可以创建出高效、可靠的 Web 应用程序。然而,PHP 和 Linux 的集成可能会导致一些常见的错误。在本文中,我们将讨论如...
    99+
    2023-09-18
    同步 linux 框架
  • Laravel 异步编程:如何避免常见的错误?
    Laravel 是一款广受欢迎的 PHP 框架,它提供了许多方便的功能,其中包括异步编程。异步编程可以大大提高 Web 应用程序的性能和响应速度,但是在实践中,它也会带来一些常见的错误。本文将介绍 Laravel 异步编程的基础知识,并提...
    99+
    2023-08-26
    laravel 教程 异步编程
  • ASP函数框架path:如何避免常见错误?
    ASP函数框架path是一种常用的ASP框架,它能够帮助开发者快速构建ASP应用程序。但是,由于其复杂性,开发者很容易犯一些常见错误。本文将介绍如何避免这些错误,以确保你的ASP应用程序能够稳定运行。 一、什么是ASP函数框架path? ...
    99+
    2023-10-19
    函数 框架 path
  • 如何避免java程序中出现乱码
    java在字符串中统一用Unicode表示。对于任意一个字符串:String string = “测试字符串”;如果源文件是GBK编码,操作系统默认环境编码也为GBK,那么编译的时候,JVM将按照GBK编码将字节数组解析为字符,然后将字符转...
    99+
    2019-04-07
    java基础 java 乱码
  • 如何避免网站高危漏洞出现
    避免网站高危漏洞出现的方法:对管理权限帐户进行权限分配,避免存有越权浏览。对所有传输的登录密码进行多次加密防止被破解。对输入的主要参数开展过滤、校检,选用黑名单和白名单的方法。对客户输入开展过滤、校检,输出开展HTML实体线编号。严格认证文...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作