当前位置: 首页 > news >正文

HTML5 为什么只需要写 <!DOCTYPE HTML>

HTML5 不基于 SGML,因此不需要对 DTD 进行引用,但是需要 doctype 来规范浏览器的行为
而 HTML4.01 基于 SGML ,所以需要对 DTD 进行引用,才能告知浏览器文档所使用的文档类型

下面是对此进行更详细的解释:

  • 在 HTML5 中,不再基于 SGML(Standard Generalized Markup Language)标准,而是定义了自己的独立规范。由于不再使用 SGML,因此不需要引用外部的 DTD(文档类型定义)来验证文档的结构和规则。
  • 因此,HTML5 只需要简单地使用 <!DOCTYPE HTML> 声明,它是一个标准模式的声明,告诉浏览器当前文档遵循的是 HTML5 规范。这样,浏览器就可以根据 HTML5 规范来解析和渲染文档,而无需引用外部的 DTD。
  • 相比之下,HTML4.01 基于 SGML 标准,需要通过 <!DOCTYPE> 声明来指定所使用的 DTD,
    例如
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

这个 DTD 提供了规范的文档结构和规则,以确保浏览器正确解析和显示文档。

  • HTML5 的简化 <!DOCTYPE HTML> 声明的设计,使得创建和编写 HTML 文档更加简单和直观。此外,这也有助于提高浏览器的兼容性,因为所有的浏览器都会将文档解析为 HTML5,无需根据 DTD 进行选择和适配。
  • 总结起来,HTML5 不再依赖 SGML,因此不需要引用外部 DTD,只需使用简单的 <!DOCTYPE HTML> 声明来指定文档类型,规范浏览器的行为

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Sql查询优化--索引设计与sql优化(包含慢查询定位+explain解释计划+左匹配原则+索引失效)
  • [pytorch] --- pytorch基础之tensorboard使用
  • Vue 登录状态判断与跳转指南
  • 一.海量数据实时分析-Doris入门和安装
  • JMeter之上传文件同时带有参数
  • Python计算机视觉四章-照相机模型与增强现实
  • Spring Cloud全解析:网关之GateWay过滤器
  • RASA使用长文记录以及一些bug整理
  • 鸿蒙启动框架配置文件(StartUpTask)
  • 学习记录:js算法(二十一):字符串的排列、替换后的最长重复字符
  • YOLOv9改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
  • 前端内存泄露案例与解决方案
  • Ubuntu 安装个人热点
  • 字符集介绍
  • 八、2 DMA数据转运 DMA函数介绍
  • 【翻译】babel对TC39装饰器草案的实现
  • 【技术性】Search知识
  • Android框架之Volley
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • ComponentOne 2017 V2版本正式发布
  • django开发-定时任务的使用
  • JavaScript实现分页效果
  • leetcode-27. Remove Element
  • leetcode46 Permutation 排列组合
  • 前端技术周刊 2019-01-14:客户端存储
  • ​Spring Boot 分片上传文件
  • #HarmonyOS:基础语法
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (笔试题)合法字符串
  • (二)PySpark3:SparkSQL编程
  • (二十四)Flask之flask-session组件
  • (分布式缓存)Redis哨兵
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (一)80c52学习之旅-起始篇
  • (转)EOS中账户、钱包和密钥的关系
  • (转)Windows2003安全设置/维护
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .net core使用ef 6
  • .net MySql
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .net快速开发框架源码分享
  • .NET下ASPX编程的几个小问题
  • /run/containerd/containerd.sock connect: connection refused
  • ::
  • ??在JSP中,java和JavaScript如何交互?
  • @Resource和@Autowired的区别
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [145] 二叉树的后序遍历 js
  • [2015][note]基于薄向列液晶层的可调谐THz fishnet超材料快速开关——
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [④ADRV902x]: Digital Filter Configuration(发射端)