Shadow DOM(阴影 DOM)是 Web Components 规范四大核心技术之一(其余为 Custom Elements、HTML Templates 和 ES Modules)。
它的核心作用是封装:允许你将一棵独立的 DOM 树附加到一个元素上,这棵树内部的结构(HTML)和样式(CSS)会与外部的主文档完全隔离,互不干扰。
Shadow DOM 引入了几术语:
主文档 (Light DOM)
└─ <div id="host"> <--- Shadow Host (宿主元素)
│
└── #shadow-root (open) <--- Shadow Root (根节点,隔离边界)
├── <style> ... </style> <--- 局域样式 (不外溢,不被外浸)
└── <button class="btn">Click</button> <--- Shadow Tree (阴影树)
- Shadow Host(宿主):普通的 Light DOM 节点(如一个
<div>),Shadow DOM 挂载在其之下。 - Shadow Root(根节点):Shadow DOM 树的入口节点,是隔离边界的起点。
- Shadow Tree(阴影树):挂载在 Shadow Root 下面的完整 DOM 子树。