【问题标题】:Vuetify themes with custom css使用自定义 css Vuetify 主题
【发布时间】:2020-01-23 19:34:36
【问题描述】:

假设我有以下内容:

<v-app>
  <div :class="getCustomCss">Blah</div>
<v-app>

getCustomCss() {
  return $this.vuetify.theme.dark ? 'whenThemeIsDark' : 'whenThemeIsLight';
}

<style>
  .whenThemeIsDark {
    border:1px solid white;
  }
  .whenThemeIsLight {
    border:1px solid black;
  }
</style>

在浅色/深色主题之间切换时,更改 div 边框颜色的最佳方法是什么?

我是否坐下来观看 $this.vuetify.theme.dark 属性并手动将边框从 myDarkClass 更改为 myWhiteClass 类似于上面显示的内容?或者我是否以某种方式使用主题/选项中的 customProperties 功能来做到这一点(以及如何?)。或者有没有更好的方法来做到这一点我不知道?

这是一个简单的例子,它只要求 css 在一个地方改变,但一个真正的应用程序可能在不同的页面上有大量的自定义 css,需要像这样的检查。如果到处都有观察者/检查,我很容易看到这会变得混乱。

我已经阅读了https://vuetifyjs.com/en/customization/theme 页面,我觉得自定义属性部分可能是关键,但我不太明白如何将我的示例转换为他们的示例。

【问题讨论】:

    标签: vuetify.js


    【解决方案1】:

    theme--lighttheme--dark 的 css 类应用于 v-app v-application,它将识别哪个主题对您来说是活动的,而无需额外的观察者。

    使用您的简化示例:

    <style>
      .v-application.theme--light {
        border:1px solid white;
      }
    
      .v-application.theme--dark{
        border:1px solid black;
      }
    </style>
    

    【讨论】:

    • 谢谢,很高兴知道。不过,这似乎是顶级的 CSS 大师。我们如何为单个项目做到这一点?就像我有 10 张不同的桌子,每张桌子都有自己的班级?我应该做 .v-application.theme--light someClass { 吗?
    • 是的,应该可以。将嵌套 CSS 与诸如 SCSS 或 LESS 之类的预处理器一起使用会使其更简洁且更易于维护。 Vuetify 2 现在使用 SCSS
    猜你喜欢
    • 2021-01-29
    • 2020-04-14
    • 2020-12-29
    • 2021-11-12
    • 2019-06-28
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 2020-03-29
    相关资源
    最近更新 更多