微信公众号

扫码关注官方订阅号

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

六种常见的HTML5写法误用

php中文网
发布: 2016-05-17 09:09:52
原创
1956人浏览过

在html5的写法中笔者总结6中最常见的写法错误,如下显示
一、不要使用section作为div的替代品
人们在标签使用中最常见到的错误之一就是随意将HTML5的

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



 

   

My super duper page


   
 

 

   
 

 

   
 

 

   
 

而现在在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可以在一个文档中使用多次,可能使得这样代码风格受到欢迎:


 

   

My best blog post


 

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


 

My best blog post


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

•如果只有一个子头部
•如果hgroup自己就能工作的很好。。。这不废话么
第一个问题一般是这样的:



 

   

My best blog post


 

 

by rich clark

法语写作助手
法语写作助手

法语助手旗下的AI智能写作平台,支持语法、拼写自动纠错,一键改写、润色你的法语作文。

法语写作助手 31
查看详情 法语写作助手

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


 

My best blog post


 

by rich clark


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



 

   

My company


   

Established 1893


 

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


 

My company


 

Established 1893


关于
更多的例子和解释,请参阅相关文章

三、不要把所有列表式的链接放在nav里
随着HTML5引入了30个新元素(截止到原文发布时),我们在构造语义化和结构化的标签时的选择也变得有些不慎重。也就是说,我们不应该滥用超语义化的元素。不幸的是,nav就是这样一个被滥用的例子。nav元素的规范描述如下:

nav元素表示页面中链接到其他页面或者本页面其他部分的区块;包含导航连接的区块。

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

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

•主要的导航
•站内搜索
•二级导航(略有争议)
•页面内导航(比如很长的文章)
既然并没有绝对的对错,所以根据一个非正式投票以及我自己的解释,以下的情况,不管你放不放,我反正不放在
中:

•分页控制
•社交链接(虽然有些社交链接也是主要导航,比如“关于”“收藏”)
•博客文章的标签
•博客文章的分类
•三级导航
•过长的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
   

    My company name
 





 

    My company
 

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


 

My company name


 
Figure也不仅仅只是图片
另一个常见的关于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属性视为有效并执行相应的行为,尽管你试着告诉它不要去执行了。这显然不是你想要的。

以上为HTML5中最常见的六种错误写法,可能以后还会有其他的错误,以后会慢慢补充完善,请各位网友耐心等待。

大家都在看:

H5 前端开发和小程序开发有什么区别 H5页面制作和微信小程序有什么不同 H5页面制作的流程是怎样的 H5页面制作需要会编程吗 H5页面制作的教程
HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
收藏 点赞
上一篇:HTML5、CSS3应用教程之 跟DIV说Bey!Bey! 下一篇:解读 HTML5:建议、技巧和技术
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
H5页面如何实现全屏滚动效果 全屏滚动H5实现方法大全 要让H5页面实现全屏滚动效果,核心在于通过HTML、CSS和JavaScript配合控制每屏切换方式。1.使用CSS设置每个section高度为100vh并结合scroll-snap-type实现自动对齐;2.利用JavaScript监听滚轮事件并使用scrollIntoView控制平滑滚动;3.借助第三方库如fullPage.js或Swiper.js简化开发流程;4.注意移动端适配问题,启用touch事件并禁止默认行为以提升体验。
2025-07-25 14:49:01
453
H5页面如何实现动态内容加载效果 3种动态加载技术让你的H5页面活起来 实现H5页面动态内容加载的核心技术有三种:1.使用Ajax异步请求更新内容,通过XMLHttpRequest或fetchAPI向服务器获取数据并用JavaScript插入页面,适合点击加载更多等场景,优点是兼容性好但需注意网络压力;2.利用Vue/React框架的响应式数据绑定,只需更新数据即可自动渲染视图,适合结构复杂的交互页面,同时需优化性能;3.使用WebSocket建立持久连接实现服务器主动推送,适用于聊天室、直播弹幕等实时性需求高的场景,也可选用长轮询作为替代方案。根据项目需求选择合适
2025-07-24 13:28:01
766
H5页面制作中如何提升页面安全性 H5安全防护的10个必备措施 H5页面安全性可通过10项措施提升:1.防止XSS攻击,对用户输入转义处理并使用CSP;2.设置CSP策略限制脚本加载来源;3.防止CSRF攻击,启用Token验证机制;4.合理管理Cookie与Storage,敏感信息加密存储;5.使用HTTPS协议保障数据传输安全;6.图片与资源防盗链,设置Referer检查或CDN鉴权;7.接口请求防刷限流,设置频率限制并增加验证机制;8.移动端安全适配,检测调试模式并识别异常行为;9.谨慎引入第三方脚本,使用SRI校验完整性;10.定期做安全扫描与测试,
2025-07-22 16:44:01
621
H5页面如何实现背景音乐循环播放 背景音乐无缝循环播放技术 H5页面实现背景音乐无缝循环需解决自动播放限制、循环播放控制及音频格式优化等问题。1.移动端需通过用户点击触发播放,可在页面加载时添加“开始”按钮并监听点击事件调用play方法;2.使用JavaScript监听ended事件,在音频结束时设置currentTime为0并重新播放,实现无缝循环;3.选择兼容性好的音频格式如MP3或苹果设备更适配的AAC,并配合preload属性或JavaScript预加载资源以减少播放延迟。
2025-07-21 16:42:01
359
H5页面制作中如何设计高点击率按钮 提升按钮点击率的7个技巧 设计H5页面高点击率按钮的关键在于清晰传达意图和提供顺手操作体验。1.明确按钮文案,使用动词开头并加入利益点,如“立即领取优惠券”;2.突出主按钮、弱化次要操作,主按钮用对比色并置于视觉焦点区域;3.按钮尺寸适中,建议44px×44px以上,并保持间距与合理布局;4.适度使用动效提升交互体验,如点击反馈与加载提示;5.颜色对比强烈且符合品牌调性,引导用户视线聚焦;6.结合场景设置按钮位置,减少用户思考成本,如表单页按钮置底、卡片式布局右下角放置;7.通过A/B测试持续优化按钮文案、颜色、位置等要
2025-07-19 10:16:02
765
H5页面如何实现自动轮播图效果 轮播图自动切换实现方案 实现H5页面自动轮播图效果的关键在于HTML结构、CSS样式和JavaScript逻辑的结合。1.首先搭建基础结构,使用HTML定义外层容器和图片项,并通过CSS设置宽度、隐藏溢出内容及横向排列图片;2.接着用JavaScript实现自动播放逻辑,通过setInterval定时切换图片,利用translateX控制偏移量并添加过渡动画提升视觉效果;3.然后实现无限循环,通过复制第一张图片至末尾并在切换时判断位置,做到无缝滚动;4.最后优化用户交互,在鼠标悬停或滑动时暂停自动播放,离开后恢复,从而
2025-07-18 14:25:01
472
H5页面如何实现跨平台适配方案 一套代码适配多端的关键方法解析 H5页面跨平台适配可通过四个关键步骤实现。一、设置viewport并采用弹性布局,使用Flexbox或Grid布局结合媒体查询实现响应式设计;二、用rem/vw单位替代px,通过JS动态调整根元素字体大小实现自适应;三、处理高清屏1px边框问题,可使用伪元素缩放、SVG描边或框架方案;四、兼容多端差异,包括自动加前缀、UA判断、预留点击空间、使用WebP格式等细节优化,确保多端体验一致。
2025-07-17 15:39:01
1156
H5页面制作中如何管理多语言切换 多语言国际化实现完整流程 在H5页面中实现多语言切换的核心方法是统一管理语言资源并动态替换文案。1.准备结构清晰的语言资源文件,如zh-CN.json、en-US.json等,便于维护和扩展;2.封装语言切换逻辑,通过i18n模块加载语言包并提供统一的文案获取方法;3.实现语言切换触发机制,并使用localStorage持久化用户偏好,优先读取用户选择或浏览器默认语言;4.处理动态内容与本地化格式,借助工具库处理日期、数字、货币及语序差异,确保不同语言下的正确展示。
2025-07-16 12:57:02
1001
H5页面制作中如何适配不同分辨率屏幕 多分辨率适配终极方案 H5页面适配不同分辨率的核心在于设置viewport、使用rem弹性布局、图片响应式处理和媒体查询微调。1.设置viewport元标签,通过width=device-width、initial-scale=1.0等属性确保页面正确识别设备宽度并禁用缩放;2.使用rem单位动态计算html字体大小,实现整体布局按比例缩放;3.图片采用srcset、sizes属性及background-size等技术适配多分辨率屏幕,建议提供@2x/@3x高清资源;4.通过媒体查询对极端分辨率做细节调整,如按钮字体
2025-07-15 14:37:01
1191
H5页面制作中如何嵌入地图定位服务 主流地图API接入方法详解 在H5页面中嵌入地图定位服务主要通过调用主流地图服务商API实现,具体步骤包括选择地图服务、申请密钥、引入SDK、初始化地图、处理定位及异常。一、选择地图API:高德适合多数场景,百度适合国内精准定位,腾讯适合微信生态;二、注册账号并申请APIKey,注意使用限制;三、引入SDK并初始化地图容器,设置中心点及调用定位插件获取当前位置;四、处理定位失败情况,如提示用户开启权限、设置默认位置或提供手动输入选项,并通过监听事件处理成功或错误状态。
2025-07-14 13:24:02
835
相关专题
更多>
  • C++ 模板元编程进阶指南
  • PHP 数据库操作与性能优化
  • Golang Web开发入门与实践
  • Java 并发与多线程编程
  • Python 异常处理与调试技巧
  • python除法运算符
  • python 平方
  • python 怎么安装库
热门推荐
  • H5页面制作中如何集成第三方API 手把手教你快速接入常用API接口
  • H5页面制作中如何集成支付接口 支付功能接入全流程解析
  • H5页面如何实现二维码生成与识别 二维码功能完整实现教程
  • H5页面如何实现下拉刷新功能 下拉刷新功能完整实现教程
  • H5页面如何实现拖拽排序功能 拖拽排序交互实现完整教程
  • HTML速学教程(入门课程)
开源免费商场系统广告
热门教程
更多>
相关推荐
热门推荐
最新课程
  • HTML5 自学入门教程
    HTML5 自学入门教程
    16940次学习
    收藏
  • 李炎恢HTML5视频教程
    李炎恢HTML5视频教程
    112700次学习
    收藏
  • html5基础知识入门视频教程
    html5基础知识入门视频教程
    74345次学习
    收藏
  • JavaScript ES5基础线上课程教学
    JavaScript ES5基础线上课程教学
    64937次学习
    收藏
  • 最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)
    最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)
    1484960次学习
    收藏
  • phpStudy极速入门视频教程
    phpStudy极速入门视频教程
    529754次学习
    收藏
  • 独孤九贱(4)_PHP视频教程
    独孤九贱(4)_PHP视频教程
    1249519次学习
    收藏
  • PHP实战天龙八部之仿爱奇艺电影网站
    PHP实战天龙八部之仿爱奇艺电影网站
    769630次学习
    收藏
  • 最新Python教程 从入门到精通
    最新Python教程 从入门到精通
    2726次学习
    收藏
  • JavaScript ES5基础线上课程教学
    JavaScript ES5基础线上课程教学
    64937次学习
    收藏
  • PHP新手语法线上课程教学
    PHP新手语法线上课程教学
    6428次学习
    收藏
  • 支付宝沙箱支付(个人也能用的支付)
    支付宝沙箱支付(个人也能用的支付)
    4508次学习
    收藏
  • 麻省理工大佬Python课程
    麻省理工大佬Python课程
    41271次学习
    收藏
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
  • [表单按钮] jQuery企业留言表单联系代码
  • [播放器特效] HTML5 MP3音乐盒播放特效
  • [菜单导航] HTML5炫酷粒子动画导航菜单特效
  • [表单按钮] jQuery可视化表单拖拽编辑代码
  • [播放器特效] VUE.JS仿酷狗音乐播放器代码
  • [html5特效] 经典html5推箱子小游戏
  • [图片特效] jQuery滚动添加或减少图片特效
  • [相册特效] CSS3个人相册封面悬停放大特效
  • [企业站源码] JaManaGe 企业后台管理 简体中文商业开源版
  • [电商源码] TP-COUPON 免费开源的PHP优惠券系统
  • [企业站源码] 名扬银河企业通用版网站源码2.0.2.2
  • [电商源码] 轻松商城
  • [企业站源码] 瑞思企业网站带手机版1.0
  • [电商源码] Manytree Mall开源商城
  • [企业站源码] HMCSS通用企业网站系统1.0
  • [电商源码] API代理版自动发卡平台源码
  • [网站素材] 有机农场活动列表ps素材下载
  • [网站素材] 新鲜美味面包矢量插图素材
  • [网站素材] 摩托车机车租赁方形海报设计下载
  • [网站素材] 夏季元素系列图案矢量素材
  • [网站素材] 乡村农场生活元素合集矢量素材
  • [网站素材] 表情南瓜灯万圣节合集矢量素材
  • [网站素材] 抽象几何拼贴数字合集矢量素材
  • [网站素材] 秋季秋叶无缝矢量花纹背景
  • [前端模板] 驾照考试驾校HTML5网站模板
  • [前端模板] 驾照培训服务机构宣传网站模板
  • [前端模板] HTML5房地产公司宣传网站模板
  • [前端模板] 新鲜有机肉类宣传网站模板
  • [前端模板] 响应式天气预报宣传网站模板
  • [前端模板] 房屋建筑维修公司网站CSS模板
  • [前端模板] 响应式志愿者服务网站模板
  • [前端模板] 创意T恤打印店网站HTML5模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号

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

技术交流群

QQ扫码
加入技术交流群

PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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

  • PHP学习

  • 技术支持

  • 返回顶部