HTML5是现代网页开发的事实标准,提供语义化标签、原生音视频支持、增强表单控件及localStorage/sessionStorage等能力,需关注兼容性、降级策略与浏览器特性差异。

HTML5 不是“另一个 HTML”,而是现代网页开发的事实标准——它把过去靠插件、hack、polyfill 才能做的事,变成了浏览器原生支持的能力。你不用再纠结“要不要上 HTML5”,而是该考虑“哪些旧写法可以安全替换了”。
语义化标签直接替代 div+class 布局
旧版 HTML 用 以前写视频得埋一段 Flash 的 object/embed,现在一行 立即学习“前端免费学习笔记(深入)”; Cookie 是为 HTTP 请求设计的,每次发请求都会带上;而 真正难的不是“HTML5 有什么新标签”,而是判断某个特性在目标用户环境里是否可用、失效时有没有合理降级、以及 JS 和 DOM 如何配合这些新能力工作。比如
、、、、、、 是最常用的一组,覆盖 90% 页面结构需求 可以出现在 内部,但 全页只能有一个,且不能嵌在 或 里html5shiv.js(仅需 script 标签引入,无需改 HTML)video/audio 不再依赖 Flash,但格式和 fallback 得手动管
就能播,但浏览器对编码格式的支持并不统一——这恰恰是上线后最容易出问题的地方。
多格式兜底,不能只写一个 src 属性表单控件升级不是“多几个 type”,而是触发系统级交互
在 iOS 和 Android 上会唤起原生日期选择器,type="email" 在移动端自动切换为带 @ 符号的键盘——这些不是 CSS 效果,是浏览器主动适配设备能力的结果。
required、pattern、min/max 都能触发 :valid/:invalid 伪类,但 JS 中仍要用 checkValidity() 主动校验type="range" 默认无刻度,Chrome 有;Safari 的 type="color" 选色器样式与其他浏览器差异明显type="number" 并不阻止用户输入字母(只是限制提交),真正要过滤得靠 input 事件 + setSelectionRange 控制光标localStorage/sessionStorage 替代 cookie,但容量和作用域规则完全不同
localStorage 是纯前端存储,容量更大(通常 5–10MB)、无网络开销,但也不随请求发送到服务端。
http://a.com 和 https://a.com 是两个独立存储空间JSON.stringify(),取出来要 JSON.parse();直接赋值非字符串会隐式转成字符串(比如 localStorage.x = true 存进去其实是 "true")localStorage 永久存在(除非手动清除或用户清缓存),sessionStorage 关闭标签页即销毁——别把它当临时 session 用,它和服务器 session 完全无关 绘图再炫,若用户禁用 JS,整个区域就是空白——这时候你得决定:是加一张静态图 fallback?还是用 SVG 保底?还是干脆不显示?这种权衡,才是 HTML5 落地的核心。











