改变iVIew默认样式的方法
自定义指令v-scoped
改变的样式只在单个文件中生效,不污染全局样式。
封装
@/directives/v-scoped.js:
1 | var install = { |
@/directives/index.js:
1 | import vScoped from './v-scope'; |
注册自定义指令:
@/idnex.js:
1 | // 导入自定义指令 index.js 会使用Vue.use()来注册指令 |
用法
F12
找到含有data-v
的dom
,手动添加class
- 在含有
scoped
的style
里写上样式
1 | <Select class="nameOne" v-scoped> |
1 | <style scoped> |
style不加scoped
另一种方法是另写一个style
,不加scoped
,将要重写的iView写在其中。
但这样有一个缺点:定义的类名可能会污染全局样式。
因此必须保证手动添加的类名独一无二。
/deep/穿透
直接通过检查元素找到className
1 | /deep/.vux-label::before { |
注意:在less中,deep不能在嵌套写法中穿透2层,因此需要分开写2段
全局的iView样式
可以全局更改iView样式。
@/style/public.less:
1 | @import url('../../../node_modules/iview/src/styles/index.less'); |
@/index.js:
1 | import '@/styles/public.less'; |