当前位置: 首页 > news >正文

如何区别HTML和HTML5?

要区分 HTML(通常指 HTML4 及更早版本)和 HTML5,主要可以从以下关键方面进行比较:


一、文档声明区别

<!-- HTML4 文档声明 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"><!-- XHTML 文档声明 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><!-- HTML5 文档声明(极简) -->
<!DOCTYPE html>

二、语义化标签对比

用途HTML4 标签HTML5 新标签
头部区域<div class="header"><header>
导航栏<div class="nav"><nav>
内容区块<div class="section"><section>
独立文章<div class="article"><article>
侧边栏<div class="sidebar"><aside>
页脚<div class="footer"><footer>
主要内容区<div class="main"><main>

✅ HTML5 通过语义化标签取代了泛滥的 <div>,提升可读性和SEO


三、多媒体支持差异

<!-- HTML4 依赖插件 -->
<object data="video.mp4"><embed src="video.mp4"> <!-- 兼容性写法 -->
</object><!-- HTML5 原生支持 -->
<video controls><source src="video.mp4" type="video/mp4">
</video><audio controls><source src="audio.mp3" type="audio/mpeg">
</audio>

四、图形技术演进

<!-- HTML4 仅支持静态图片 -->
<img src="image.png" alt="示例"><!-- HTML5 新增矢量绘图能力 -->
<canvas id="myCanvas" width="200" height="100"></canvas>
<script>const ctx = document.getElementById('myCanvas').getContext('2d');ctx.fillStyle = "#FF0000";ctx.fillRect(0, 0, 150, 75);
</script><!-- SVG 内联支持 -->
<svg width="100" height="100"><circle cx="50" cy="50" r="40" stroke="green" fill="yellow" />
</svg>

五、表单功能增强

功能HTML4HTML5
输入类型仅基础类型(text/password)email/url/number/date
color/range/search
表单验证需JavaScript实现原生验证 (required/pattern)
提示占位符无直接支持placeholder 属性
自动聚焦需JS代码autofocus 属性
<!-- HTML5 表单示例 -->
<input type="email" placeholder="输入邮箱" required>
<input type="date" min="2020-01-01">
<input type="range" min="0" max="100">

六、API 革新对比

功能HTML4HTML5
本地存储Cookie (4KB限制)localStorage/sessionStorage (5MB+)
地理位置Geolocation API
多线程Web Workers
实时通信轮询WebSocket
离线应用Application Cache
拖放交互需复杂JS原生拖放 API

七、兼容性处理

<!-- 让旧浏览器支持HTML5标签 -->
<!--[if lt IE 9]><script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.js"></script>
<![endif]-->

八、代码对比示例

<!-- HTML4 典型页面结构 -->
<body><div id="header">...</div><div id="nav">...</div><div class="content"><div class="post">...</div></div><div id="sidebar">...</div><div id="footer">...</div>
</body><!-- HTML5 语义化结构 -->
<body><header>...</header><nav>...</nav><main><article>...</article></main><aside>...</aside><footer>...</footer>
</body>

核心区别总结表

特性HTML4 及之前HTML5
设计目标文档标记语言应用开发平台
文档声明冗长复杂<!DOCTYPE html>
语义结构依赖<div>+CSS类原生语义标签
多媒体支持需Flash/插件原生<video>/<audio>
图形能力仅静态图片<canvas>/SVG
数据存储Cookie (受限)Web Storage/IndexedDB
设备交互Geolocation/Camera API
连接性短轮询WebSocket/Server-Sent Events

通过 document.createElement('video') 检测:
!!document.createElement('video').canPlayType 返回 true 即为支持HTML

http://www.dtcms.com/a/285328.html

相关文章:

  • C++进阶-红黑树(难度较高)
  • Java学习第五十三部分——后端常用函数
  • 闭包探秘:JavaScript环境捕获机制深度解析
  • Java大厂面试实录:从Spring Boot到AI微服务架构的深度拷问
  • 飞凌嵌入式亮相第九届瑞芯微开发者大会:AIoT模型创新重做产品
  • Go-Redis 入门与实践从连接到可观测,一站式掌握 go-redis v9**
  • #vscode# #SSH远程# #Ubuntu 16.04# 远程ubuntu旧版Linux
  • 第三章自定义检视面板_创建自定义编辑器类_实现自定义检视面板中的GUI内容(本章进度(1/9))
  • 「源力觉醒 创作者计划」_巅峰对话:文心 4.5 vs. DeepSeek / Qwen 3.0 深度解析(实战优化版)
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - jieba库分词简介及使用
  • CVSS 3.1权限要求(PR)深度解读
  • 信息论至AI实践:交叉熵的原理全景与应用深度解析
  • 苹果ios系统IPA包企业签名手机下载应用可以有几种方式可以下载到手机?
  • 时序数据库 Apache IoTDB 实战:基于 Kubernetes 的部署运维全指南
  • 固件OTA升级常见问题
  • 9. isaacsim4.2教程-ROS加相机/CLOCK
  • Onload 用户指南 (UG1586)-笔记
  • (数据结构)线性表(上):SeqList 顺序表
  • Mysql数据库——增删改查CRUD
  • k8s:利用kubectl部署postgis:17-3.5
  • Java面向对象核心揭秘:从构造到多态的实战指南
  • Java List 集合详解:从基础到实战,掌握 Java 列表操作全貌
  • 代码随想录算法训练营65期第22天
  • 五分钟学会大数定律【笔记】
  • day055-Dockerfile与常用指令
  • 上网行为管理之内容审计实验
  • 数据结构-2(链表)
  • 基于强化学习的人机协同教学角色分配优化与课堂参与度建模研究
  • C++拷贝构造
  • 鸿蒙UI自动化测试框架Hypium的使用指南