在 Svelte 中,我可以将自定义类传递给子组件,如下所示:
图标.svelte
<script>
export { className as class };
let className = '';
</script>
<img src='...' class={className} />
Run Code Online (Sandbox Code Playgroud)
应用程序.svelte
<script>
import Icon from './Icon/Icon'
</script>
<div id='app'>
<Icon class='custom-icon' />
</div>
Run Code Online (Sandbox Code Playgroud)
如果我检查渲染的 DOM,我会发现该类已成功分配给组件Icon:
<img src='...' class='custom-icon' />
Run Code Online (Sandbox Code Playgroud)
但是如果我为.custom-iconin定义某种样式App.svelte,它们就不会被应用:
<script>
import Icon from './Icon/Icon'
</script>
<style>
.custom-icon {
border: solid 2px red;
}
</style>
<main>
<Icon class='custom-icon' /> <!-- Icon has no red border -->
</main>
Run Code Online (Sandbox Code Playgroud)
检查代码和框。
那么有人知道如何使用类为父组件设计子组件的样式吗?
我认为有一种方法可以两全其美。
\n* :global(.custom-icon)\xc2\xa0{\n border: solid 2px red;\n}\nRun Code Online (Sandbox Code Playgroud)\n这将输出如下 CSS:
\n.svelte-5z4ccp .custom-icon {\n border: solid 2px red;\n}\nRun Code Online (Sandbox Code Playgroud)\n这将允许您为组件的后代定义 CSS 范围。但是,不可能仅将其范围限定为直接子代,而只能将其限定为所有后代。
\n| 归档时间: |
|
| 查看次数: |
3343 次 |
| 最近记录: |