【发布时间】:2019-06-09 14:51:40
【问题描述】:
我已经开始在一个旧的现有项目中使用 Vue.js 和 Vuetify。所以我没有重写所有的前端,我只是导入了 Vue 并替换了一些部分。
然后我注意到一个非常出乎意料的行为 - Vuetify 具有通用类的全局样式,如 .title 并且它影响整个页面,而不仅仅是 Vue 部分。
那么,问题是,如何在 Vue 组件中隔离 vuetify 样式?
UPD:按照@DigitalDrifter 的建议,我尝试使用stylus 块级导入。所以我删除了
import 'vuetify/dist/vuetify.min.css'
来自main.js 并创建了一个新的.styl 文件(它被导入而不是css),其内容如下:
.vuetify-styles
@import '~vuetify/src/stylus/main'
然后将这个类添加到根组件中:<App class="vuetify-styles">
UPD2: 之后你可以得到与stylus 编译相关的错误。更多相关信息 -> https://github.com/vuetifyjs/vuetify/issues/4864
UPD3: less 也适合我。
# vuetify-styles.less
.vuetify-styles {
@import (less) '../../node_modules/vuetify/dist/vuetify.min.css';
}
然后将其导入您的main.js
import './vuetify-styles.less'
【问题讨论】:
-
“隔离”是什么意思?
-
我的意思是为
vuetify.min.css创建类似命名空间的东西,为所有样式和其他与 vue 相关的样式创建根类
标签: css vue.js vuetify.js