Vue中对比scoped css和css module的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue中对比scoped css和css module的区别相关的知识,希望对你有一定的参考价值。

参考技术A 为所有类名重新生成类名,有效避开了css权重和类名重复的问题。css module直接替换了类名,排除了用户设置类名影响组件样式的可能性。

为类名添加一个hash标识属性。无法完全避开css权重和类名重复的问题。

将 Bootstrap/Bootstrap-Vue 导入 Scoped CSS

【中文标题】将 Bootstrap/Bootstrap-Vue 导入 Scoped CSS【英文标题】:Importing Bootstrap/Bootstrap-Vue into Scoped CSS 【发布时间】:2019-10-10 11:38:09 【问题描述】:

我正在开发一个 chrome 扩展,并在我的 Vue 文件上使用 Bootstrap-Vue。目前,我将 bootstrap/bootstrap-vue 导入到我的 js 文件中,但这会导致样式在全局级别上进行。理想情况下,我希望引导程序仅适用于我插入的文件。 Vue文件的部分有没有办法做到这一点?

//在.js文件中

import VModal from 'vue-js-modal'
import BootstrapVue from 'bootstrap-vue'; 

//我在vue文件里试过了,没有效果

<style scoped src="bootstrap/dist/css/bootstrap.css"></style>
<style scoped src="bootstrap-vue/dist/bootstrap-vue.css"></style>

【问题讨论】:

【参考方案1】:

要仅在组件中导入样式,请在 &lt;style&gt; 标签内使用它

  @import 'bootstrap/dist/css/bootstrap.css';
  @import 'bootstrap-vue/dist/bootstrap-vue.css';

【讨论】:

如果你这样做,样式会在组件外泄漏。【参考方案2】:

何塞的回答几乎是正确的:

<style scoped>
@import 'bootstrap/dist/css/bootstrap.css';
@import 'bootstrap-vue/dist/bootstrap-vue.css';
</style>

【讨论】:

以上是关于Vue中对比scoped css和css module的区别的主要内容,如果未能解决你的问题,请参考以下文章

2.12 vue中css scoped的原理

vue中使用css modules替代scoped

vue3单页面引入公共的css,加了scoped但无法加deep,导致样式无法穿透,如何解决?

Vue中的scoped属性

vue 中 style 标签中的 scoped 属性(作用域)和 lang 属性的介绍

vue 中 style 标签中的 scoped 属性(作用域)和 lang 属性的介绍