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