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

DOCTYPE(文档类型)的作用是什么?

DOCTYPEDocument Type Declaration文档类型声明是 HTML 文档的第一行代码位于html标签之前它的主要作用是告诉浏览器当前文档使用的是哪个 HTML 或 XHTML 版本规范从而决定浏览器以何种模式来解析和渲染页面。简单来说它是浏览器解析页面的“说明书”或“开关”。1. 核心作用触发渲染模式浏览器在解析 HTML 时主要有两种渲染模式DOCTYPE 的存在直接决定了使用哪一种| 渲染模式 | 触发条件 | 特点 | 影响 || :— | :— | :— | : ||标准模式 (Standards Mode)|存在正确的 DOCTYPE | 浏览器严格按照 W3C 标准如 CSS 盒模型、字体大小、行高等进行渲染。 |推荐。确保页面在不同浏览器中表现一致符合现代 Web 标准。 ||怪异模式 (Quirks Mode)|缺失DOCTYPE 或 声明错误 | 浏览器模拟旧版浏览器如 IE5的非标准行为以兼容几十年前的老旧网站。 |不推荐。会导致 CSS 盒模型计算错误如width包含 padding/border、行高不一致、图片间距异常等。 ||近似标准模式 (Almost Standards Mode)| 某些特定的 DOCTYPE | 介于两者之间主要修正了表格单元格图片的垂直对齐等极少数怪异行为其他遵循标准。 | 现代浏览器默认行为通常无需担心。 |为什么会有“怪异模式”在 Web 发展早期不同浏览器特别是 Netscape 和 IE对 HTML/CSS 的解析标准不统一导致很多网站依赖这些“错误”才能正常显示。为了兼容这些老旧网站现代浏览器保留了“怪异模式”。如果没有 DOCTYPE浏览器会“假设”这是一个老旧网站从而开启怪异模式。2. DOCTYPE 的写法演变随着 HTML 版本的迭代DOCTYPE 的写法越来越简洁HTML 4.01 (繁琐)需要引用 DTD文档类型定义文件写法复杂容易出错。!-- 严格模式 --!DOCTYPEHTMLPUBLIC-//W3C//DTD HTML 4.01//ENhttp://www.w3.org/TR/html4/strict.dtd!-- 过渡模式 (允许使用一些已废弃的标签) --!DOCTYPEHTMLPUBLIC-//W3C//DTD HTML 4.01 Transitional//ENhttp://www.w3.org/TR/html4/loose.dtdXHTML 1.0 (严格)基于 XML 的 HTML要求更严格。!DOCTYPEhtmlPUBLIC-//W3C//DTD XHTML 1.0 Strict//ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtdHTML5 (极简推荐)HTML5 不再基于 SGML因此不需要引用 DTD。写法极其简单且不区分大小写但通常全大写。!DOCTYPEhtml这是目前所有现代 Web 开发的标准写法。3. 如果没有 DOCTYPE 会发生什么如果你在 HTML 文件开头忘记写!DOCTYPE html浏览器会进入怪异模式 (Quirks Mode)导致以下常见问题盒模型差异标准模式width 内容宽度padding 和 border 在 width 之外。怪异模式width 内容 padding border类似 IE5 的行为。这会导致布局宽度计算错误元素溢出或错位。行高问题某些浏览器在怪异模式下行高计算可能不一致导致文字重叠或间距异常。图片对齐图片底部可能会多出几个像素的空白因为浏览器将其视为文本基线对齐。表格布局表格单元格的 padding 和 border 处理方式不同。CSS 选择器支持某些现代 CSS 选择器如:nth-child在怪异模式下可能无法正常工作。4. 最佳实践必须写在第一行DOCTYPE 必须是 HTML 文档的第一行除了 XML 声明?xml ...?但在 HTML5 中通常不需要 XML 声明。任何在它之前的字符包括空格、注释、BOM 字符都可能导致浏览器进入怪异模式。统一使用 HTML5 写法无论你的项目是 HTML4 还是 HTML5永远使用!DOCTYPE html。现代浏览器对这种写法有极好的兼容性且能确保触发标准模式。不要省略即使是一个简单的测试页面也请加上 DOCTYPE养成良好的编码习惯。总结作用告诉浏览器使用标准模式还是怪异模式来渲染页面。现状现代开发中必须在文件第一行写上!DOCTYPE html。后果缺少它会导致布局错乱、样式异常且难以排查。正确示例!DOCTYPEhtmlhtmllangzh-CNheadmetacharsetUTF-8title我的页面/title/headbodyh1你好世界/h1/body/html

相关文章:

DOCTYPE(文档类型)的作用是什么?

DOCTYPE&#xff08;Document Type Declaration&#xff0c;文档类型声明&#xff09;是 HTML 文档的第一行代码&#xff08;位于 <html> 标签之前&#xff09;&#xff0c;它的主要作用是告诉浏览器当前文档使用的是哪个 HTML 或 XHTML 版本规范&#xff0c;从而决定浏览…...

AI修复艺术画作可行吗?国画细节还原实战测试报告

AI修复艺术画作可行吗&#xff1f;国画细节还原实战测试报告 1. 开场&#xff1a;一张泛黄的《溪山行旅图》局部&#xff0c;能被AI“救活”吗&#xff1f; 上周整理旧资料时&#xff0c;翻出一张扫描自古籍插页的宋代山水画局部——墨色晕染、线条模糊、分辨率 barely 超过4…...

Arduino Giga Display Shield GT911触摸驱动库详解

1. 项目概述Arduino_GigaDisplayTouch 是专为 Arduino Giga Display Shield 设计的触摸控制器驱动库&#xff0c;采用标准 C 编写&#xff0c;深度适配 Arduino API 生态&#xff0c;面向 STM32H747XI 双核&#xff08;Cortex-M7 Cortex-M4&#xff09;主控平台。该库并非通用…...

计算机毕业设计:Python动漫数据可视化分析系统全栈开发 Flask框架 可视化 爬虫 大数据 机器学习 番剧推荐(建议收藏)✅

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ > &#x1f345;想要获取完整文章或者源码&#xff0c;或者代做&#xff0c;拉到文章底部即可与…...

二分查找解题:咒语与药水的成功配对

二分查找class Solution:def successfulPairs(self, spells: List[int], potions: List[int], success: int) -> List[int]:ans []n len(potions)potions.sort()for num in spells:left, right 0, len(potions)while left < right:mid (left right) // 2if num * po…...

用 LangBot 把 Dify Agent 接入微信、QQ、飞书,10分钟搞定

在这里插入图片描述 用 LangBot 把 Dify Agent 接入微信、QQ、飞书&#xff0c;10分钟搞定 想让你的 Dify Agent 不只是在网页里跑&#xff0c;而是能直接在微信群、QQ 频道、飞书里回复消息&#xff1f;LangBot 就是为这个场景设计的。本文手把手教你完成这个集成&a…...

大学生论文全流程辅助工具oowzai实测:从开题到答辩的高效解决方案

作为常年和大学生论文打交道、也帮不少同学梳理过论文写作问题的博主&#xff0c;我发现大家写毕业论文、课程论文的时候&#xff0c;难的从来不是单纯凑字数写内容&#xff0c;而是卡在选题框架、文献规范、内容逻辑、格式排版、查重降重这些核心环节&#xff0c;再加上现在高…...

el-upload二次封装带表格校验组件

需求背景&#xff1a;项目里的附件上传以往都是通过调用后端上传附件接口&#xff0c;由后端接口负责校验附件以及表单规则&#xff0c;项目经理现为了优化性能&#xff0c;决定由前端先行校验表格内部分基础规则内容&#xff08;如判断是否为空表格&#xff0c;列表项内容是否…...

ARMv8.1原子操作避坑指南:从LDXR到CAS指令的完整迁移教程

ARMv8.1原子操作迁移实战&#xff1a;从LL/SC到LSE的深度优化 在移动计算和服务器领域&#xff0c;ARM架构正经历着从v8.0到v8.1的关键跃迁。这次升级不仅仅是时钟频率的提升&#xff0c;更带来了处理器原子操作范式的根本性变革——LSE&#xff08;Large System Extension&am…...

告别‘鬼畜’发音:VITS微调中音频数据准备的3个关键步骤与工具推荐

突破VITS语音合成瓶颈&#xff1a;专业级音频预处理全流程指南 当你听到VITS模型合成的语音出现机械感、断句不自然或背景杂音时&#xff0c;问题往往出在最初的数据准备阶段。作为AI语音合成领域的核心技术&#xff0c;VITS对输入音频的质量要求极高&#xff0c;而大多数失败案…...

2025_NIPS_Scaffolding Dexterous Manipulation with Vision-Language Models

文章主要内容总结 该研究提出一种结合视觉语言模型(VLMs)与强化学习(RL)的灵巧机器人操作框架,核心是用VLM生成粗粒度运动轨迹(“支架”),指导低层级残差RL策略完成复杂操作任务。框架无需人工演示或手工设计奖励函数,通过自然语言指令和场景图像,让VLM识别任务相关…...

零代码基础:通过RetinaFace镜像轻松体验AI人脸检测技术

零代码基础&#xff1a;通过RetinaFace镜像轻松体验AI人脸检测技术 1. 为什么选择RetinaFace镜像 RetinaFace是目前最先进的人脸检测算法之一&#xff0c;能够同时完成人脸检测和关键点定位。但对于没有编程基础的用户来说&#xff0c;搭建环境、安装依赖、调试代码这些步骤往…...

ChatGLM3-6B 32k上下文实测对比:vs Qwen2-7B、Llama3-8B长文本理解能力评测

ChatGLM3-6B 32k上下文实测对比&#xff1a;vs Qwen2-7B、Llama3-8B长文本理解能力评测 1. 评测背景与意义 长文本理解能力是衡量大语言模型实用性的关键指标。在实际应用中&#xff0c;我们经常需要处理长篇文档、代码库分析、多轮对话等场景&#xff0c;模型能否准确理解和…...

【专访】3个维度10个问题,大佬带你全面解决软件测试质量难题

本篇文章从3个方面汇总整理了10个目前在软件测试与质量保障领域关注度较高的专访问题&#xff0c;希望对你有所帮助&#xff01; 关于行业 问题1&#xff1a;在当前数字化转型的大背景下&#xff0c;软件测试与质量保障面临的最大挑战是什么&#xff1f;您是如何应对的&#…...

Mirage Flow在Node.js环境下的部署与优化:从安装到生产

Mirage Flow在Node.js环境下的部署与优化&#xff1a;从安装到生产 1. 环境准备与快速部署 在开始使用Mirage Flow之前&#xff0c;我们需要先搭建好Node.js开发环境。这个过程其实很简单&#xff0c;就像准备一个工具箱&#xff0c;把需要的工具都放进去就行。 首先&#x…...

【架构实战】云原生架构设计原则

一、什么是云原生 云原生&#xff08;Cloud Native&#xff09;是一种构建和运行应用程序的方法论&#xff0c;充分利用云计算的优势&#xff0c;让系统更加弹性、可靠、高效。 核心定义 云原生计算基金会&#xff08;CNCF&#xff09;对云原生的定义&#xff1a;云原生技术使组…...

Apache SeaTunnel 社区年终盘点

pache SeaTunnel 的社区成员、开发者、合作伙伴以及关心我们的朋友们&#xff1a; 2025 匆匆而过&#xff0c;Apache SeaTunnel 却在这一年里收获了满满的成长与惊喜&#xff01;作为全球增长最快的数据集成项目之一&#xff0c;我们看着 GitHub 上的 Star 和 Fork 数一路攀升…...

CYBER-VISION零号协议Java八股文:面试题智能解析与生成

CYBER-VISION零号协议Java八股文&#xff1a;面试题智能解析与生成 最近跟几个做Java开发的朋友聊天&#xff0c;大家不约而同地提到了同一个烦恼&#xff1a;准备面试。不管是刚毕业的新人&#xff0c;还是想跳槽的资深工程师&#xff0c;面对海量的“八股文”知识点&#xf…...

Linux命令-mke2fs(创建磁盘分区上的“etc2/etc3”文件系统)

mke2fs 命令用于在 Linux 系统上创建 ext2、ext3 或 ext4 文件系统。它是 mkfs.ext2、mkfs.ext3、mkfs.ext4 等命令的底层实现工具。 &#x1f4d6; 基本语法 mke2fs [选项] 设备名 [块数量]&#x1f3af; 常用选项选项说明-t 文件系统类型指定文件系统类型&#xff1a;ext2、e…...

CISCO AP3802I-H-K9瘦AP刷ME固件避坑大全:版本降级与TFTP升级的那些坑

CISCO AP3802I-H-K9瘦AP刷ME固件实战指南&#xff1a;从版本降级到批量部署 在企业无线网络部署中&#xff0c;CISCO AP3802I-H-K9作为高性能802.11ac Wave 2接入点&#xff0c;常需要从瘦AP模式转换为Mobility Express&#xff08;ME&#xff09;模式以实现独立控制器功能。本…...

避坑指南:Win Server2012部署VS2015时缺失api-ms-win-crt-runtime.dll的终极修复方案

深度解析&#xff1a;Windows Server 2012部署VS2015时api-ms-win-crt-runtime.dll缺失的全面解决方案 在企业级开发环境中&#xff0c;Windows Server 2012作为稳定的服务器操作系统&#xff0c;仍然被许多开发团队所使用。然而&#xff0c;当尝试在这类系统上安装Visual Stud…...

aiohttp存在目录遍历漏洞(CVE-2024-23334)

## aiohttp存在目录遍历漏洞(CVE-2024-23334)aiohttp是一个Python的HTTP客户端/服务器框架&#xff0c;它基于asyncio库实现异步编程模型&#xff0c;可以支持高性能和高并发的HTTP通信。aiohttp用于编写异步的Web服务器、Web应用程序或HTTP客户端&#xff0c;以提供对Web和HTT…...

零门槛构建智能交易系统:TradingAgents-CN多场景部署指南与效能倍增实践

零门槛构建智能交易系统&#xff1a;TradingAgents-CN多场景部署指南与效能倍增实践 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 在金融科技快…...

LLaMA-Factory模型导出全攻略:从GGUF转换到Ollama本地化部署(含LangChain向量提取示例)

LLaMA-Factory模型导出全攻略&#xff1a;从GGUF转换到Ollama本地化部署&#xff08;含LangChain向量提取示例&#xff09; 在当今快速发展的AI领域&#xff0c;大语言模型的本地化部署已成为企业和技术团队实现自主可控AI能力的关键路径。LLaMA-Factory作为开源大模型微调框架…...

OpenClaw+Qwen3.5-4B-Claude:低成本打造24小时代码助手

OpenClawQwen3.5-4B-Claude&#xff1a;低成本打造24小时代码助手 1. 为什么需要代码助手 作为一名独立开发者&#xff0c;我经常面临这样的困境&#xff1a;深夜调试代码时思维迟钝&#xff0c;第二天醒来发现犯了很多低级错误&#xff1b;处理复杂日志时容易遗漏关键信息&a…...

C语言结构体:学生信息统计实战

学生信息统计--结构体 把一个学生的信息&#xff08;包括学号、姓名、性别、住址&#xff09;放在一个结构体变量中&#xff0c;然后输出它各个成员的值。 #include <stdio.h> struct Student { long ID; char name[50]; char sex[50]; char addr[100]…...

AI+逆向新姿势:用Claude和IDA-pro-mcp自动化修复百万行固件类型系统(含prompt模板)

AI逆向工程实战&#xff1a;Claude与IDA-pro-mcp自动化修复百万行固件类型系统 逆向工程领域正经历一场由AI驱动的范式变革。当传统逆向工程师还在手工分析结构体偏移量时&#xff0c;前沿研究者已经用自然语言指令批量修复固件类型系统。本文将揭示如何组合Claude的推理能力与…...

5分钟掌握TradingAgents-CN:开源多智能体金融交易框架实战指南

5分钟掌握TradingAgents-CN&#xff1a;开源多智能体金融交易框架实战指南 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 在信息爆炸的金融市场…...

嵌入式串口命令行解析器:轻量级Shell设计与实践

1. 项目概述SimpleSerialShell 是一个轻量级、零依赖的串口命令行解析器&#xff0c;专为资源受限的嵌入式平台&#xff08;如 Arduino AVR、ESP32、STM32F0/F1 系列&#xff09;设计。其核心目标并非替代 GNU Readline 或 POSIX shell&#xff0c;而是提供一种可嵌入、可裁剪、…...

3步技术焕新:让经典系统重获Python支持,老旧设备焕发新生

3步技术焕新&#xff1a;让经典系统重获Python支持&#xff0c;老旧设备焕发新生 【免费下载链接】PythonVista Python 3.9 installers that support Windows 7 SP1 and Windows Server 2008 R2 项目地址: https://gitcode.com/gh_mirrors/py/PythonVista 你的Windows 7…...