HTML5需用小写且前不可有任何字符,字符编码用;语义标签须按规范使用以保障可访问性与SEO;表单验证、音视频等应结合原生特性与兼容性fallback。

DOCTYPE 和字符编码怎么写才不触发怪异模式
HTML4 的 不仅冗长,还严格区分大小写和 URL 正确性;漏个引号、多一个空格、甚至开头有注释,IE8 及更老浏览器就直接进怪异模式——盒模型错乱、字体渲染异常、浮动塌陷全来。HTML5 彻底砍掉 DTD 依赖,只用 ,但必须全小写、前面**不能有任何字符**(包括空格和 )。字符编码也从 简化为 ,少写错一个等号或引号就不会白屏。
语义标签不是“换div名字”,而是改DOM逻辑
用 HTML4 表单验证全靠 JS 写正则、监听 blur/change、手动画提示框,既易绕过又难维护;HTML5 把 立即学习“前端免费学习笔记(深入)”; 最容易被忽略的点:HTML5 的升级不是“用了新标签就算升级”,而是你是否需要语义结构支撑 SEO 与读屏器、是否真要离线缓存、是否放弃 IE8 及以下——如果项目仍需兼容旧内网系统,强行上 替代 必须且只能出现一次, 应包裹主导航而非页脚友情链接, 要能独立分发(比如 RSS 抓取),而 必须有标题()才具完整语义。常见错误:把整个侧边栏塞进 –
却没关联到主 ,或在 里放导航链接却不用 —— 这类误用反而降低可访问性,屏幕阅读器会跳过或误读。表单和多媒体别再靠JS或Flash打补丁
required、pattern、min/max、type="email" 等能力下沉为原生属性,浏览器自动弹 UI 提示。但注意:pattern 是正则字面量(不加 /g),且不支持 \p{Han} 这类 Unicode 属性; 在 Safari 上基本不可用,得 fallback 到 JS 日历库。 和 原生支持免插件播放,但格式兼容性差(Safari 不认 WebM,IE11 不认 MP4 H.265),必须用 多格式兜底。localStorage 和 Web Worker 的真实使用边界
localStorage.setItem('theme', 'dark') 存 5–10MB 没问题,但它**不随 HTTP 请求发送**,也不加密,敏感数据别存;key-value 全是字符串,存对象得 JSON.stringify(),取的时候得 JSON.parse(),否则报错。Web Worker 启动耗时低,适合跑图片压缩、大数组排序这类纯计算任务,但不能操作 DOM,所有通信必须走 postMessage(),传大对象(如 10MB JSON)反而比主线程慢——因为要序列化+复制内存。真正该用它的场景,是避免 UI 卡顿,而不是“让代码看起来高级”。 或 localStorage 只会增加 polyfill 成本和维护负担。











