| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <style> |
| body, html, main { |
| margin: 0; |
| width: 100%; |
| height: 100%; |
| } |
| |
| section { |
| display: inline-block; |
| } |
| </style> |
| <script> |
| addEventListener("load", () => { |
| const outerShadowRoot = document.querySelector("main").attachShadow({ mode: "open" }); |
| outerShadowRoot.innerHTML = ` |
| <style> |
| section { |
| width: 400px; |
| height: 600px; |
| border: 2px solid black; |
| } |
| </style> |
| <section></section>`; |
| |
| const innerShadowRoot = outerShadowRoot.querySelector("section").attachShadow({ mode: "open" }); |
| innerShadowRoot.innerHTML = ` |
| <style> |
| div { |
| width: 400px; |
| height: 200px; |
| box-sizing: border-box; |
| } |
| .red { background-color: rgb(255, 59, 48); } |
| .green { background-color: rgb(52, 199, 89); } |
| .blue { background-color: rgb(0, 122, 255); } |
| </style> |
| <div class="red"></div> |
| <div class="green"></div> |
| <div class="blue"></div>`; |
| }); |
| </script> |
| </head> |
| <body> |
| <main></main> |
| </body> |
| </html> |