html4和html5文档声明有啥不同_怎么区分两种文档头【说明】
发布时间:2025-12-31 00:00
发布者:蓮花仙者
浏览次数:HTML4的DOCTYPE需严格匹配三种DTD之一并指向官方URL,否则触发怪异模式;HTML5仅支持,不校验DTD,纯为标准模式开关。
HTML4 的 有多种写法,且依赖 DTD 类型
HTML4 分为 Strict、Transitional、Frameset 三种 DTD, 必须完整声明并指向对应 DTD URL,否则浏览器可能触发怪异模式。常见写法如:
这些声明不仅区分语义严格程度,还直接影响 CSS 渲染行为(比如盒模型、height 解析方式)和 JS 的 document.body.clientHeight 等值。
关键点:
-
PUBLIC后面的字符串是“公共标识符”,不是 URL,不能随意修改 - URL 必须准确匹配 W3C 官方地址,本地或错误路径会导致 DTD 解析失败,退化为怪异模式
- 大小写敏感:必须全大写
PUBLIC和EN,引号必
须是英文双引号
HTML5 的 是唯一合法且大小写不敏感的声明
HTML5 彻底简化了文档类型声明,只接受一种形式:(推荐小写),其他任何变体(如加空格、换行、大写 HTML、带系统标识符)虽多数浏览器能容错,但不符合规范。
它不引用 DTD,也不做 DTD 校验,纯粹是触发标准模式的开关。例如:
以下写法虽常被容忍,但应避免:
(大小写混用,非规范)(旧草案残留,已废弃)(多余属性,无意义)
如何快速判断一个页面用的是 HTML4 还是 HTML5 文档头
直接看 开头是否包含 html 二字且无 PUBLIC 或 URL —— 是则大概率是 HTML5;若出现 HTML 4.01、HTML 3.2、Strict/Transitional 字样,或带有 "http://www.w3.org/..." 的 URL,则属于 HTML4(或更早)。
注意几个易误判点:
- 存在
不代表就是 HTML5 —— HTML4 也能用(只是非标准) - 用了
或标签也不绝对,因为 HTML4 页面可通过 CSS 命名模拟语义,且部分浏览器对未知标签有容错渲染 -
document.doctype.systemId在 HTML5 下为null,HTML4 下通常为 DTD URL(可编程检测)
混用或写错文档声明的实际影响
最直接后果是触发怪异模式(Quirks Mode),导致盒模型、表格布局、字体继承等行为回退到 IE5.5 时代逻辑。Chrome/Firefox 会通过 document.compatMode 暴露状态:"CSS1Compat" 表示标准模式,"BackCompat" 即怪异模式。
典型症状包括:
-
div { width: 100px; padding: 10px; }在怪异模式下总宽仍是 100px(IE5 盒模型) -
table的border-collapse失效 -
font-size在嵌套中异常放大或缩小
哪怕只多一个空格、少一个引号,或把 html 写成 HTML,都可能导致旧版 IE 或某些嵌入式 WebView 解析失败。所以,HTML5 就老老实实写 ,别加料。
# css
# html
# js
# html5
# 浏览器
# firefox
# chrome
# NULL
# 标识符
# 字符串
# 继承
# public
相关文章:
css box sizing border box 好处_布局计算简化技巧
在Java中如何使用Collections工具类_Java集合操作方法解析
在Java中如何使用Scanner读取输入_Java控制台输入基础解析
智行ai抢票怎样设置抢票通道_智行ai抢票通道选择与速度优化【指南】
三星开发SbS全新芯片封装技术 Exynos 2700或将首发搭载
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
《勇者斗恶龙》工作室新作突破150万销量!社长发文感谢玩家
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
大疆 Air 4 无人机泄露:或将配备一英寸主摄与双长焦镜头
新手机没充满拔下来有影响吗 新手机可以断断续续充电吗【解惑】
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
如何从SQL数据库动态填充下拉菜单(Dropdown)
字符串大小写互换的正确实现方法
REDMI多款机型迎来HyperOS 3系统推送 含K60系列
html图片如何竖屏_HTML设置图片适应竖屏显示模式【竖屏】
如何使用Golang实现RPC连接复用_Golang RPC长连接与复用方法
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
Linux后台任务运行方法_nohup与&使用技巧【技巧】
Zeus浏览器主页登录入口 宙斯浏览器官网在线导航
Python内建对象体系_核心类型说明【指导】
快手网页版入口 电脑大屏更过瘾
千问如何让提示词更逻辑化_千问逻辑化提示词编写方法【步骤】
Go 中的切片(Slice)就是你所需的动态数组实现
Windows如何设置登录时的欢迎屏幕背景?(锁屏界面)
动态创建可拖拽组件并添加自定义属性的 Angular 实现
sublime怎么配置elixir开发环境_sublime安装elixir-ls插件高亮设置【方案】
《漫威争锋》洛基“女洛基”制服1月2日上新
css文字颜色无法修改怎么办_使用color属性覆盖默认样式
OpenAtom openKylin 2025年度报告 | 智启全球,根植未来
宙斯浏览器解决网页加载慢方法 优化网络连接与预加载设置
相关栏目:
【
行业资讯17850 】
【
软件资源51899 】
【
网站技术89748 】
【
百度推广44206 】
【
网络营销84187 】
【
运营推广93002 】
【
AI优化91086 】
【
网络优化117696 】
【
网址导航107142 】





须是英文双引号
