【发布时间】:2019-12-05 22:44:38
【问题描述】:
我在 Svelte 中编写了一个应用程序,并希望添加一个任何人都可以在单击按钮后激活的暗模式。我添加了一个名为 isDarkMode 的属性来切换这两种情况。如果该属性为true,我想将body的背景色改为深色,但是背景色没有变化。
{#if isDarkMode}
<style>
:global(body){
background: #2e3440;
}
</style>
{/if}
【问题讨论】:
-
我可能会采取不同的方法。如果您坚持使用 CSS(而不是 CSS-in-JS),我会将主题类名称添加到 body 元素中。所以你有一个常规的身体风格和
body.dark-mode风格。那么你就不需要在你的应用程序周围乱扔条件了。 (假设你的造型比你的身体更多) -
至于为什么它没有改变。据我所知,样式块不是反应性的。编译后,CSS 会从模板中“提取”出来。
isDarkMode是如何定义的? -
你能对此做出官方回答吗?
-
@skyboyer 我现在发布了答案。
标签: svelte