文章 专题 学习 下载 问答 编程词典 手游 最近更新
登录
简体中文(ZH-CN) English(EN) 繁体中文(ZH-TW) 日本語(JA) 한국어(KO) Melayu(MS) Français(FR) Deutsch(DE)
  • 后端开发
  • Web 前端
  • Web3
  • 常见问题
  • 手机游戏教程
  • 数据库
前端
HTML | CSS | JavaScript | Vue.js
后端
PHP | ThinkPHP | Laravel | MySQL | Redis
最新推荐
  • php8,我来也

    84669 人学习

原生基础
HTML | CSS | HTML5 | CSS3 | JavaScript
框架开发
jQuery | Vue.js | React | AngularJS | Node.js | BootStrap | AJAX | Foundation
最新推荐
  • 30分钟学会网站布局

    152542 人学习

编程语言
PHP | Python | Go | Java | C | C++ | C# | VBSscript | Scala | Lua | Perl | Ruby | JSP | XML | ASP
框架/工具
ThinkPHP | Laravel | Servlet | Django | ASP.NET
基础入门
MySQL | SQL Server
进阶学习
MongoDB | Oracle | Redis | Memcached
最新推荐
  • 尚观Oracle入门到精通视频教程

    20005 人学习

原生开发
Android | iOS
多端开发
Swift | Flutter | uni-app | 小程序 | 其他
最新推荐
  • 你的第一行 UNI-APP 代码

    5487 人学习

  • Flutter 从头到应用启动

    7821 人学习

环境使用
Linux | Docker
工具使用
PhpStudy | Git | 其他工具
最新推荐
  • 兄弟连Linux新版视频教程

    359900 人学习

UI设计
Axure | PS
最新推荐
  • AXURE 9视频教程(适合产品经理交互产品设计UI)

    3350 人学习

  • 零基础PS视频教程

    180660 人学习

  • 16天带你入门UI视频教程

    48569 人学习

  • PS技巧和切片技巧视频教程

    18603 人学习

类库分类
HTTP | TCP/IP | 基础编程
最新推荐
  • 阿里云环境搭建以及项目上线视频教程

    40936 人学习

  • 计算机网络概述——程序员必须掌握的基础知识

    1549 人学习

  • 程序员必备教程——HTTP协议讲解

    1183 人学习

  • Websocket视频教程

    32909 人学习

首页> web前端> H5教程> 正文

html5中的常见错误用法

王林
发布: 2021-01-13 10:47:53
转载
2012 人浏览过

html5中的常见错误用法

html5中常见的6中错误用法:

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

(学习视频分享:html视频教程)

人们在标签使用中最常见到的错误之一就是随意将HTML5的

等价于
——具体地说,就是直接用作替代品(用于样式)。在XHTML或者HTML4中,我们常看到这样的代码:

My super duper page

Header content
Page content
Secondary content
Footer content
登录后复制

而现在在HTML5中,会是这样:
请不要复制这些代码!这是错误的!

My super duper page

登录后复制

这样使用并不正确:**

并不是样式容器。**section元素表示的是内容中用来帮助构建文档概要的语义部分。它应该包含一个头部。如果你想找一个用作页面容器的元素(就像HTML或者XHTML的风格),那么考虑如Kroc Camen所说,直接把样式写到body元素上吧。如果你仍然需要额外的样式容器,还是继续使用div吧。
基于上述思想,下面才是正确的使用HTML5和一些ARIA roles特性的例子(注意,根据你自己的设计,你也可能需要加入div)

My super duper page

登录后复制

如果你还是无法确定使用哪种元素,那么我建议你参考HTML5 sectioning content element flowchart
二、只在需要的时候使用header和hgroup
写不需要写的标签当然是毫无意义的。不幸的是,我经常看到header和hgroup被无意义的滥用。你可以阅读一下关于header和hgroup元素的两篇文章做一个详细的了解,其中内容我简单总结如下:

header元素表示的是一组介绍性或者导航性质的辅助文字,经常用作section的头部当头部有多层结构时,比如有子头部,副标题,各种标识文字等,使用hgroup将h1-h6元素组合起来作为section的头部
header的滥用

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

My best blog post

登录后复制

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

My best blog post

登录后复制

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

如果只有一个子头部如果hgroup自己就能工作的很好。。。这不废话么
第一个问题一般是这样的:
请不要复制这段代码!此处不需要hgroup –>

My best blog post

by Rich Clark

登录后复制

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

My best blog post

by Rich Clark

登录后复制

第二个问题是另一个不必要的例子:
请不要复制这段代码!此处不需要header –>

My company

Established 1893

登录后复制

如果header唯一的子元素是hgroup,那还要header干神马?如果header中没有其他的元素(比如多个hgroup),还是直接拿掉header吧。(web前端学习交流群:328058344 禁止闲聊,非喜勿进!)

My company

Established 1893

登录后复制

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

随着HTML5引入了30个新元素(截止到原文发布时),我们在构造语义化和结构化的标签时的选择也变得有些不慎重。也就是说,我们不应该滥用超语义化的元素。不幸的是,nav就是这样一个被滥用的例子。nav元素的规范描述如下:
nav元素表示页面中链接到其他页面或者本页面其他部分的区块;包含导航连接的区块。
注意:不是所有页面上的链接都需要放在nav元素中——这个元素本意是用作主要的导航区块。举个具体的例子,在footer中经常会有众多的链接,比如服 务条款,主页,版权声明页等等。footer元素自身已经足以应付这些情况,虽然nav元素也可以用在这里,但通常我们认为是不必要的。
关键的词语是“主要的”导航。当然我们可以互相喷上一整天什么叫做“主要的”。而我个人是这样定义的:

  • 主要的导航

  • 站内搜索

  • 二级导航(略有争议)

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

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

  • 分页控制

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

  • 博客文章的标签

  • 博客文章的分类

  • 三级导航

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

  • 如果使用section和hx也同样合适,那么不要用nav — Hixie on IRC
    为了方便访问,你会在某个“快捷跳转”中给这个nav标签加一个链接吗?

  • 如果这些问题的答案是“不”,那就跟

四、figure元素的常见错误

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

。其他视情况而定,但一开始可以问自己:“这个图片是否必须和上下文有关?”如果不是,那可能也不是(也许是个)。继续:“我可以把它移动到附录中吗?”如果两个问题都符合,则它可能是 。
Logo并不是figure
进一步的说,logo也不适用于figure。下面是我常见的一些代码片段:

![My company](/img/mylogo.png)
My company name

登录后复制
![My company](/img/mylogo.png)
登录后复制

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

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

这是个常见的问题,但并不是一个错误,我认为我们应该通过最佳实践来避免这种风格。
在HTML5中,script和style元素不再需要type属性。然而这些很可能会被你的CMS自动加上,所以要移除也不是那么的轻松。但如果你是手工编码或者你完全可以控制你的模板的话,那真的没有什么理由再去包含type属性。所有的浏览器都认为脚本是javascript而样式是css样式,你没必要再多此一举了。

登录后复制

其实只需要这样写:

登录后复制

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

六、form属性的错误使用

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

  • autofocus

  • autocomplete

  • required

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

登录后复制

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

登录后复制

解析器仍然会将required属性视为有效并执行相应的行为,尽管你试着告诉它不要去执行了。这显然不是你想要的。
有三种有效的方式去使用布尔属性。(后两种只在xthml中有效)

  • required

  • required=””

  • required=”required”

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

登录后复制

相关推荐:html5教程

以上是html5中的常见错误用法的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
html5
来源:juejin.im
上一篇:什么是h5页面制作 下一篇:html5如何生成验证码
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
  • Rollblock (RBLK) 预售飙升至 400 万美元以上,9,000 名投资者涌向赌场宝石
    2024-08-16 21:47:12
  • 投资者寻求稳定币避难,比特币和以太坊出现资本外流
    2024-08-16 21:46:12
  • Fantom (FTM) 2022 年价格预测:更多上涨空间即将到来
    2024-08-16 21:44:12
  • AYANEO AG01 Starship:RX 7600M XT 外置 GPU 准备在 Indiegogo 上推出,采用 RGB 和复古科幻设计
    2024-08-16 21:39:41
  • 洛克王国世界亲密度配方公式有哪些
    2024-08-16 21:38:25
  • AAVE 价格预测:随着多头重新获得控制权,AAVE 有望上涨 7%,原因如下
    2024-08-16 21:38:12
  • 蛋仔派对僵尸少女不化骨怎么获得
    2024-08-16 21:38:08
  • 洛克王国世界急急鸭测试需要什么配置
    2024-08-16 21:37:47
  • Tron 颠覆以太坊,有望成为世界上最有价值的网络?
    2024-08-16 21:37:12
  • 原神5.0原石怎么获取
    2024-08-16 21:34:08
最新问题
如何使用Javascript设置HTML5的required属性? 我正在尝试在Javascript中将text输入框标记为必需。
来自于 2023-10-13 08:52:25
0
2
317
无法获取鼠标准确坐标的问题:在调整页面大小时使用HTML5画布 我想从前端专家那里创建这个像素效果。虽然我能够在全屏画布上实现整个像素效果:constcanvas=getElementById('canvas');canvas.height=w...
来自于 2023-09-12 12:20:33
0
1
280
使用Base64编码的HTML5视频M3U8 我想在HTML5的Video标签中添加一个base64编码的M3U8文件,我该怎么做
来自于 2023-09-09 23:07:18
0
1
247
vue.js / bootstrap:未调用 onclick 事件方法,错误'找不到变量:updateDocument” 我是前端开发新手,但对HTML5、CSS和Javascript有基本了解。我创建了一个vue.js项目并添加了bootstrap和axios。我的应用程序加载数据并显示它们。但是,...
来自于 2023-09-09 20:06:48
0
1
362
XHTML中移除图像标签中的闭合斜杠'/' 我有一个存储图像的字符串txt1。它的值是XHTML格式,即元素已关闭:。但我需要删除该关闭斜杠,因此它可以是就像HTML5中一样。有没有办法做到这一点。
来自于 2023-09-06 12:15:38
0
1
240
相关专题
更多>
  • html5动画制作有哪些制作方法html5动画制作有哪些制作方法
  • HTML与HTML5的区别HTML与HTML5的区别
  • ip冲突怎么办ip冲突怎么办
  • 堆和栈的区别堆和栈的区别
  • ubunt上安装和配置vncubunt上安装和配置vnc
  • MySQL恢复数据库MySQL恢复数据库
  • 抖音直播回放哪里看抖音直播回放哪里看
  • 电脑cpu温度过高怎么解决电脑cpu温度过高怎么解决
热门推荐
  • h5是什么
  • 不懂代码怎么制作h5页面?H5页面制作平台推荐
  • html5的新特性有哪些
  • 什么是h5页面制作
  • h5和小程序有什么区别
热门教程
更多>
相关教程
热门推荐
最新课程
  • 野秀堂HTML5+CSS3视频教程
    野秀堂HTML5+CSS3视频教程
    8577
  • HTML5基础精讲视频教程
    HTML5基础精讲视频教程
    24122
  • HTML5入门基础视频教程
    HTML5入门基础视频教程
    35991
  • HTML5新特性基础视频教程
    HTML5新特性基础视频教程
    26910
  • 最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)
    最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)
    1394781次学习
  • JAVA 初级入门视频教程
    JAVA 初级入门视频教程
    2347538次学习
  • 小甲鱼零基础入门学习Python视频教程
    小甲鱼零基础入门学习Python视频教程
    493071次学习
  • Web前端开发极速入门
    Web前端开发极速入门
    213403次学习
  • 零基础精通 PS 视频教程
    零基础精通 PS 视频教程
    842541次学习
  • 【web前端】Node.js快速入门
    【web前端】Node.js快速入门
    3089次学习
  • 国外Web开发全栈课程全集
    国外Web开发全栈课程全集
    2480次学习
  • Go语言实战之 GraphQL
    Go语言实战之 GraphQL
    1962次学习
  • 550W粉丝大佬手把手从零学JavaScript
    550W粉丝大佬手把手从零学JavaScript
    464次学习
  • python大神Mosh,零基础小白6小时完全入门
    python大神Mosh,零基础小白6小时完全入门
    10700次学习
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
  • [表单按钮] jQuery企业留言表单联系代码
  • [播放器特效] HTML5 MP3音乐盒播放特效
  • [菜单导航] HTML5炫酷粒子动画导航菜单特效
  • [表单按钮] jQuery可视化表单拖拽编辑代码
  • [播放器特效] VUE.JS仿酷狗音乐播放器代码
  • [html5特效] 经典html5推箱子小游戏
  • [图片特效] jQuery滚动添加或减少图片特效
  • [相册特效] CSS3个人相册封面悬停放大特效
  • [前端模板] 家居装潢清洁维修服务公司网站模板
  • [前端模板] 清新配色个人求职简历引导页模板
  • [前端模板] 设计师创意求职简历网页模板
  • [前端模板] 现代工程建筑公司网站模板
  • [前端模板] 教育服务机构响应式HTML5模板
  • [前端模板] 网上电子书店商城网站模板
  • [前端模板] IT技术解决互联网公司网站模板
  • [前端模板] 紫色风格外汇交易服务网站模板
  • [PNG素材] 可爱的夏天元素矢量素材(EPS+PNG)
  • [PNG素材] 四个红的的 2023 毕业徽章矢量素材(AI+EPS+PNG)
  • [banner图] 唱歌的小鸟和装满花朵的推车设计春天banner矢量素材(AI+EPS)
  • [PNG素材] 金色的毕业帽矢量素材(EPS+PNG)
  • [PNG素材] 黑白风格的山脉图标矢量素材(EPS+PNG)
  • [PNG素材] 不同颜色披风和不同姿势的超级英雄剪影矢量素材(EPS+PNG)
  • [banner图] 扁平风格的植树节banner矢量素材(AI+EPS)
  • [PNG素材] 九个漫画风格的爆炸聊天气泡矢量素材(EPS+PNG)
  • [前端模板] 家居装潢清洁维修服务公司网站模板
  • [前端模板] 清新配色个人求职简历引导页模板
  • [前端模板] 设计师创意求职简历网页模板
  • [前端模板] 现代工程建筑公司网站模板
  • [前端模板] 教育服务机构响应式HTML5模板
  • [前端模板] 网上电子书店商城网站模板
  • [前端模板] IT技术解决互联网公司网站模板
  • [前端模板] 紫色风格外汇交易服务网站模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!