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

HTML 的底层原理

一、HTML 是什么

HTML(HyperText Markup Language,超文本标记语言)不是编程语言,而是一种结构化标记语言。
它用标签 来描述网页内容的结构,比如标题、段落、图片、链接等。

二、HTML 在浏览器中的底层运行流程

浏览器渲染 HTML 页面时,大体会经历以下几个阶段:

HTML 源代码↓
1. 解析(Parsing)↓
2. DOM 树(Document Object Model)↓
3. CSSOM 树(CSS Object Model)↓
4. Render Tree(渲染树)↓
5. Layout(布局计算)↓
6. Painting(绘制)↓
7. Compositing(合成)↓
显示在屏幕上

三、详细原理分解

1. 解析(Parsing)

浏览器接收到 HTML 文本后,会先进行:

  • 词法分析(Lexical Analysis):将文本拆成一个个“标记”(Token),比如 <html>、<body>、<div>。

  • 语法分析(Syntax Analysis):根据这些标记构建出树状结构 —— DOM 树。

实际上是通过“HTML Parser” 完成的。HTML Parser 是浏览器的一个专用解析器。

2. DOM 树(Document Object Model)描述 HTML 元素的结构

  • DOM 是浏览器内部在内存中生成的对象结构树。

  • 每个 HTML 标签都会被解析为一个 Node(节点)对象。

  • JavaScript 可以通过 DOM API(如 document.querySelector())操作这些节点。

📘 举例:

<html><body><h1>Hello</h1></body>
</html>

DOM 树结构(简化):

Document└── html└── body└── h1└── "Hello"

3. CSSOM 树-描述 CSS 样式规则。

  • 浏览器同时解析 <style> 或外部 CSS 文件,构建 CSSOM(CSS 对象模型)。

  • 这是样式的树状结构,用于后续计算每个节点的样式。

<style>body {margin: 0;color: black;}p {font-size: 16px;}
</style>

浏览器解析后形成的 CSSOM 树 大致如下:

CSSOM├── body│     ├── margin: 0│     └── color: black└── p└── font-size: 16px

4. Render Tree(渲染树)

  • 浏览器将 DOM + CSSOM 合并,生成 Render Tree(渲染树)。

  • 渲染树中只包含可见元素(例如 display: none 的不会出现)。

5. Layout(布局)

  • 计算每个元素的具体几何位置和大小。

  • 类似于给每个盒子确定坐标和尺寸。

6. Painting(绘制)

  • 根据布局结果,绘制每个节点的背景、文字、边框、图片等。

  • 这个阶段会生成 位图(Bitmap)。

7. Compositing(合成)

  • 现代浏览器采用分层渲染(Layer)。

  • 每个图层在 GPU 上合成,最终在屏幕显示。

四、底层技术参与者

| 模块                         | 作用          | 所属引擎                 |
| -------------------------- | ----------- | -------------------- |
| HTML Parser                | 解析 HTML 文本  | 渲染引擎(如 Blink、WebKit) |
| CSS Parser                 | 解析样式表       | 渲染引擎                 |
| JavaScript 引擎(V8)          | 执行脚本,操作 DOM | JS 引擎                |
| Layout / Paint / Composite | 渲染页面        | 渲染引擎(GPU参与)          |

Chrome 使用 Blink 渲染引擎 + V8 JavaScript 引擎

五、浏览器优化机制

  • 预解析(Preload Scanner):HTML 解析时,提前加载 CSS、JS、图片。

  • 懒加载(Lazy Loading):滚动到可见区域才加载图片。

  • 合成层(Compositor Layers):GPU 加速渲染,减少重绘。

  • 重排 / 重绘(Reflow / Repaint)优化。

六、总结一句话

HTML 底层原理就是浏览器将文本文件“翻译”为可视化结构的过程:
从 源代码 → 解析为 DOM → 计算样式 → 绘制到屏幕,
期间由浏览器的 渲染引擎 完成一系列编译与图形渲染操作。

http://www.dtcms.com/a/535769.html

相关文章:

  • 布吉做网站的公司关于网站建设的图片
  • 服务器运维(六)网站访问分析统计——东方仙化神期
  • 【Docker】定制化构建一个可以运行GaussDB的kylinv10sp3系统的docker镜像
  • 5分钟搭建云IDE!CodeServer+cpolar打造跨设备开发工作站
  • vmware和kali linux安装和搭建
  • 网络:网络层(IP协议)和数据链路层
  • DDS和SOMEIP区别以及应用场景
  • Lumi 具神智能机器人 SDK说明和ACT算法中的学习与推理
  • Rokid AR眼镜开发入门:构建智能演讲提词器Android应用
  • 量化指标解码03:布林带的开口收口策略与市场波动性分析
  • 深圳网站建设报价表廊坊建手机网站
  • 余姚网站推广wordpress多个域名
  • CSS引入方式(本文为个人学习笔记,内容整理自哔哩哔哩UP主【非学者勿扰】的公开课程。 > 所有知识点归属原作者,仅作非商业用途分享)
  • SuperMap iObjects .NET 11i 二次开发(十六)—— 叠加分析之合并
  • 【Linux笔记】网络部分——传输层协议UDP
  • Ansible 自动化项目结构与 Harbor 安装示例(基于 kubeasz)①
  • Spring 源码学习(十五)—— HandlerMethodReturnValueHandler
  • everviz 数据可视化平台
  • 12 U盘挂载
  • 【Kylin Linux root 密码故障处置指南(超限重试 + 改回原密码)】
  • 网络原理:数据链路层、NAT与网页加载
  • 【从零开始开发远程桌面连接控制工具】01-项目概述与架构设计
  • 网站建设竞价托管什么意思在国内做推广产品用什么网站好
  • 有没有做宠物的网站网站开发中间商怎么做
  • 深度强化学习 | 详解从信赖域策略优化(TRPO)到近端策略优化(PPO)算法原理
  • 在类中定义装饰器:Python高级元编程技术详解
  • [C++][正则表达式]常用C++正则表达式用法
  • 基于大数据的短视频数据分析系统 Spark哔哩哔哩视频数据分析可视化系统 Hadoop大数据技术 情感分析 舆情分析 爬虫 推荐系统 协同过滤推荐算法 ✅
  • 参考抖音推荐算法的功能:不同用户规模的推荐技术框架
  • 深入理解C语言scanf函数:从基础到高级用法完全指南