Как использовать родительский 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 пользовательского элемента, то вам нужно либо:

  1. Использовать <slot> или же
  2. Скопируйте CSS в shadowDOM

Вот три ответа, которые я дал на подобные вопросы:

Другие вопросы по тегам