
Olá!
Continuo meu ciclo de publicações sobre o grupo de padrões de Web Components . Meu objetivo é criar expectativas realistas a partir desse conjunto de tecnologias, e também, junto com você, chegar a um entendimento mais claro de onde elas não devem ser aplicadas e onde, ao contrário, nada melhor ainda foi inventado. Desta vez, sugiro morar no Shadow DOM com mais detalhes .
, , , . , Shadow DOM - DOM API, , . , , , , , HTML- audio - , #shadow-root - . Shadow DOM audio. , "" , - . UI-, , , . . , , . Shadow DOM, , "?".
Shadow DOM?
. Shadow DOM "", , ( , "") DOM API, , , ( , ID , ).
. Shadow DOM "" DOM- . , Shadow DOM , , - slot. , , - .
, , - ( LitElement), , Shadow DOM - -. . Custom Elements Shadow DOM , , DOM , div. DOM , , CSS- "element.style", , , media- . JavaScript ( , ). Shadow DOM:
let myElement = document.createElement('div');
myElement.attachShadow({
mode: 'open',
});
myElement.shadowRoot.innerHTML = /*html*/ `
<style>
:host {
padding: 10px;
}
:host(:hover) {
color: red;
}
</style>
<slot></slot>
`;div , . Shadow DOM - :host, , JS. , , , .
Shadow DOM?
, -, - : UI--, -, . , , " " .
, , -, - : .
" ".
?
, Shadow DOM , (, Custom Elements).
Shadow DOM JavaScript, , (SSR) . , .
, CSP (Content Security Policy) - DOM. . innerHTML, insertRule, . , , , - CSP- unsafe-inline. , - . Chromium, adoptedStylesheets. element.style (, , ), Shadow DOM :
let myElement = document.createElement('div');
myElement.attachShadow({
mode: 'open',
});
myElement.shadowRoot.innerHTML = /*html*/ `
<link rel="stylesheet" href="styles.css">
<slot></slot>
`;Shadow DOM, , , , , DOM . DOM, .
, , : IE - DOM . , , .
Shadow DOM é uma tecnologia poderosa e flexível. Seu uso pode facilitar muito a solução de muitos problemas e abre espaço para a criatividade na solução de problemas atípicos. Mas não espere dela uma resposta mágica a todas as suas perguntas e uma completa ausência de dificuldades.