自定义属性
您可以将 CSS 自定义属性(静态和动态)传递给组件
<Slider
bind:value
min={0}
max={100}
--track-color="black"
--thumb-color="rgb({r} {g} {b})"
/>
以上代码本质上会被转译成以下代码
<svelte-css-wrapper style="display: contents; --track-color: black; --thumb-color: rgb({r} {g} {b})">
<Slider
bind:value
min={0}
max={100}
/>
</svelte-css-wrapper>
对于 SVG 元素,它将使用 <g> 代替
<g style="--track-color: black; --thumb-color: rgb({r} {g} {b})">
<Slider
bind:value
min={0}
max={100}
/>
</g>
在组件内部,我们可以使用 var(...)
读取这些自定义属性(并提供回退值)。
<style>
.track {
background: var(--track-color, #aaa);
}
.thumb {
background: var(--thumb-color, blue);
}
</style>
您**不必**直接在组件上指定值;只要在父元素上定义了自定义属性,组件就可以使用它们。通常在全局样式表中的 :root
元素上定义自定义属性,以便它们应用于整个应用程序。
虽然额外的元素不会影响布局,但它**会**影响任何 CSS 选择器(例如)使用
>
组合符来直接定位组件容器内的元素。
上一页 下一页