Поскольку для Svelte не требуется ни одного элемента верхнего уровня.
<!-- no problem for Svelte -->
<h1>...</h1>
<h2>...</h2>
На самом деле он вообще не требует элементов.
<script>...</script>
<!-- this is the end of the component (still no problem for Svelte) -->
Что угодно ... Без Для элемента root стратегия единого класса переноса неприменима.
Кроме того, при этом будет применяться не только текущий компонент, но и текущий компонент и его дочерние элементы . Рассмотрим этот пример:
<!-- Scoped.svelte -->
<style>
span { color: red }
</style>
<div>
<span>I should be red</span>
</div>
<slot />
<!-- App.svelte -->
<script>
import Scoped from './Scoped.svelte'
</script>
<Scoped>
<span>I should not be red</span>
</Scoped>
<span>
в App.svelte
является , а не частью компонента Scoped
, но он является его дочерним элементом в DOM.
Примечание: если вы хотите получить доступ к текущему компоненту и его дочерним элементам, уловка заключается в использовании псевдоселектора :global
:
<style>
/* note that you do need a wrapping element, this time, to do that */
div :global(span) { color: blue }
</style>
Стиль селектора div
становится ограниченным, поэтому мы нацеливаемся только на дочерние элементы этого компонента (по DOM), но не выше.