HTML4文档类型声明需严格匹配DTD,如;HTML5简化为,大小写不敏感,遗漏将触发怪异模式。

HTML4 和 HTML5 的文档类型声明怎么写
HTML4 用的是 DTD(文档类型定义),必须严格匹配特定版本;HTML5 则大幅简化,只保留语义化目的。
- HTML4 严格模式:
- HTML4 过渡模式:
- HTML5:
—— 大小写不敏感,但惯例全小写;没有 URI,也不触发任何 DTD 解析
写错或遗漏 会导致浏览器进入怪异模式(Quirks Mode),CSS 盒模型、表格对齐等行为会退回到旧标准,调试时容易误判为样式 bug。
HTML5 新增的语义化标签在 HTML4 里根本不存在
HTML4 几乎全靠 HTML4 表单极度依赖 JavaScript 和自定义验证;HTML5 把常用交互逻辑下沉到原生层面,减少脚本负担,也提升移动端体验。 立即学习“前端免费学习笔记(深入)”; 不是所有 HTML4 写法在 HTML5 中还能“跑起来”,有些被移除,有些被标记为“过时(obsolete)”,虽可能渲染但不推荐,且未来可能被彻底剔除。 实际项目中,即使旧代码没报错,用
、、、、、、 —— 这些在 HTML4 中属于非法标签,IE8 及更早版本连识别都不识别document.createElement("header") 或引入 html5shiv.js 才能支持 CSS 选择器生效 不应出现多次(W3C 明确建议仅一个),而 和 可嵌套,但语义不同:前者是主题分组,后者是独立内容单元(如一篇博客、一条新闻)表单控件和属性在 HTML5 里直接原生支持
、、、 —— 在支持的浏览器中自动触发对应软键盘或日期选择器required、placeholder、autofocus、pattern(正则验证)、min/max —— 都是布尔或字符串值,无需 JS 即可参与表单校验流程placeholder 不是 label 替代品,它不具语义,且输入后消失;仍需配 才符合无障碍要求HTML5 废弃或限制使用的 HTML4 标签和属性
、、(下划线,除非表示非译术语)、、、
align(用于 等)、bgcolor、border( 上)、name( 上,改用 id)
text-align、background-color、border 等;语义缺失时优先补 HTML 结构而非样式 hackalign="center" 这类写法也会被现代 Linter(如 ESLint + html-validate)标为警告;更重要的是,这类属性在 Shadow DOM 或 Web Component 封装中可能完全失效。










