如何使用 vue js 作用域样式

Posted

技术标签:

【中文标题】如何使用 vue js 作用域样式【英文标题】:How to use vue js scoped style 【发布时间】:2021-01-07 07:54:14 【问题描述】:

我正在使用 vue jsELEMENT UI。我想覆盖它的风格。我可以用全局风格做到这一点。但是范围样式不起作用。当我使用全局样式时,它会改变我的所有页面设计。但我只想为一页做。

这是我的风格(全局风格。这是有效的):

<style>
.el-icon-close:before
    content: "Back" !important;

</style>

但是当我使用作用域时它不起作用:

<style scoped>
.el-icon-close:before
    content: "Back" !important;

</style>

对此有什么想法吗?

【问题讨论】:

你也可以使用深度选择器:***.com/a/57704482/575468 【参考方案1】:

scoped 关键字意味着对样式的更改将仅适用于当前范围内的元素。意思是页面中的所有自定义元素。如果您想在其他地方访问“创建”的元素,则必须跳过 scoped 关键字。范围标记中的代码将仅适用于当前页面/视图,否则它将适用于所有页面/视图。

所有非作用域元素通常都是App.vue 文件中的样式。如果你想应用没有作用域的元素的样式,只需将其包装在 div 中,将类添加到其中并在作用域标记中设置样式:

<style scoped>
.my-custom-div
    .el-icon-close:before
         content: "Back" !important;
    

</style>

至少和我一起工作。

【讨论】:

【参考方案2】:

您必须使用自定义类:

.custom 类 smthng 到这里...

【讨论】:

【参考方案3】:

这可以通过Deep selectors 实现

对于您的用例:

<style scoped>
.parent-div /deep/ .el-icon-close:before
    content: "Back" !important;

</style>

【讨论】:

以上是关于如何使用 vue js 作用域样式的主要内容,如果未能解决你的问题,请参考以下文章

具有作用域 css 的 Vue.js 样式 v-html

Vue:如何更改作用域子组件的样式

vue + nuxt.js - 如何根据域有不同的样式?

如何覆盖 Vue 组件中的作用域样式?

如何理解vue.js组件的作用域是独立的

如何在 Vue 中使用外部作用域 scss