Как использовать родительский CSS из Shadow DOM
У меня есть css из родительского приложения, которое я хочу использовать внутри веб-компонента, созданного shadow dom. Я не хочу копировать css из родительского приложения в веб-компонент, но сейчас веб-компонент не может видеть css родительского приложения, как я могу это сделать?
parent app:
<style>
.pretty-button {
color: green
}
</style>
<body>
<button class="pretty-button">Got It</button>
<custom-element></custom-element>
</body>
web-component made by shadow dom:
<!--doesn't work because the shadow dom can't use parent css class-->
<body>
<button class="pretty-button">Got it from shadow dom</button>
</body>
1 ответ
Решение
Shadow DOM защищен от внешних CSS. Это по замыслу.
TL; DR:
Если вы хотите, чтобы внешний CSS влиял на DOM внутри shadowRoot пользовательского элемента, то вам нужно либо:
- Использовать
<slot>
или же - Скопируйте CSS в shadowDOM
Вот три ответа, которые я дал на подобные вопросы: