Middle
Какво е Shadow DOM?
sobes.tech AI
Отговор от AI
Shadow DOM — това е уеб стандарт, който позволява инкапсулиране на DOM дървото и стиловете вътре в компонент, като ги изолира от останалата част на документа.
Основни концепции:
- Shadow tree: Собствено DOM дърво, прикрепено към елемент.
- Shadow boundary: Граница, която отделя Shadow DOM от основния документ.
- Shadow host: Елемент, към който е прикрепен Shadow DOM.
- Shadow root: Кореновият възел на Shadow дървото.
Предимства:
- Изолация на стиловете: Стиловете, дефинирани вътре в Shadow DOM, не влияят на елементите извън него, и обратното.
- Изолация на DOM: Структурата DOM вътре в Shadow DOM не е видима и не е достъпна директно от основния документ, което предотвратява конфликти с id и класове.
- Капсулация: Създава модулни, многократно използваеми компоненти.
Създаване на Shadow DOM:
const hostElement = document.getElementById('my-component');
const shadowRoot = hostElement.attachShadow({ mode: 'open' }); // режим: 'open' - достъпен чрез JavaScript; 'closed' - не
shadowRoot.innerHTML = `
<style>
/* Стилове само за този Shadow DOM */
p {
color: blue;
}
</style>
<p>Това е съдържанието на Shadow DOM</p>
`;