【问题标题】:override scss variables in vuetify覆盖 vuetify 中的 scss 变量
【发布时间】:2021-01-01 09:21:21
【问题描述】:

为了增加vuetify的v-switch的宽度,我想修改vuetify的scss变量的值。

通过vue-cli配置vuetify,开发代码如下。

// src/assets/css/overrides.scss
$font-size-root: 24px;
$switch-width: 400px;
$switch-track-width: 400px;
// vue.config.js
module.exports = {
  transpileDependencies: ['vuetify'],
  configureWebpack: {
    devtool: 'source-map',
  },
  css: {
    loaderOptions: {
      scss: { // 8.0.3
        prependData: `@import "@/assets/css/overrides.scss";`,
      },
    },
  },
};

但一切都没有改变。我在做什么蠢事?

参考: https://vuetifyjs.com/en/customization/sass-variables/ https://cli.vuejs.org/guide/css.html#css-modules

【问题讨论】:

  • 按照here 的规定,您必须在导入之前放置覆盖。 // Variables must come before the import
  • @tao hmm... 是不是需要从vue.config.js以外的地方导入?

标签: vue.js webpack sass vuetify.js


【解决方案1】:

我在这个问题上浪费了很多时间。但后来我意识到这很容易。

你不需要导入任何文件并在 vuetify.config.js 中编写 loaderOptions

  • src目录下创建scss目录。
  • variables.scss 文件放入新目录。 (scss目录)

vuetify-loader 会自动将您的变量引导到 Vue CLI 的编译过程中,覆盖框架默认值。

关注这个documentation

例如;

遵循这个文件夹结构。

procejtName/src/scss/variables.scss

 // variables.scss

 $font-size-root: 24px;
 $switch-width: 400px;
 $switch-track-width: 400px;

完成所有这些操作后,请停止本地服务器并仅使用 npmyarn 重新启动一次。

完成这些步骤后,您所做的每项更改都会自动显示。您不需要每次更改都重新启动开发服务器。

【讨论】:

  • 我可以覆盖组件中的本地 $font-size-root 吗?我试过 。但这不起作用
  • 您要更改单个组件还是整个应用程序的字体大小? "$font-size-root" 改变所有组件的字体大小。如果要更改单个组件中的字体大小;在“app.vue”文件中定义“.scss”文件。不要使用“范围”。然后在“.scss”文件中定义类“testClass {font-size: ...px;}”。最后,尝试将此 css 类添加到要更改其字体大小的元素中。如果此解决方案不起作用,请重新编写。
  • 您不必使用我的答案中找到的“variables.scss”文件。如果需要,您可以在不同的“.scss”文件中进行此定义。但是,如果您想使用不同的 .scss 文件,则必须在 App.vue 文件中定义您创建的新 .scss 文件。
  • 嗯,好的。我知道我会试试谢谢
猜你喜欢
  • 2023-01-29
  • 2020-09-30
  • 2018-04-23
  • 2020-07-23
  • 2013-04-26
  • 2021-05-07
  • 1970-01-01
  • 2022-06-23
  • 1970-01-01
相关资源
最近更新 更多