【发布时间】:2021-06-18 22:14:55
【问题描述】:
将我的样式移动到语言环境设置,但看到当我将元素插入插槽容器时,它们将不起作用。我想这是正常的,如果有办法解决这个问题,请记住不,我不会将父(.child)样式放在父组件中,不,我想将我的 CSS 保存在单独的 scss 文件中。
组件(父级)
<template>
<wrapper>
<div class="child">Hello</div>
</wrapper>
</template>
组件(调用的包装器)
<template>
<div class="wrapper">
<slot></slot>
</div>
</template>
<style lang="scss" scoped>
@import "../../../sass/components/_container.scss";
</style>
container.scss
.wrapper{
background-color:#333;
.child{
background-color:#fff;// not doing anything
}
}
【问题讨论】:
-
你试过
v-deep选择器了吗,我相信这就是它的目的。你可以像.wrapper::v-deep .child { background-color:#fff; }一样使用它。见vue-loader.vuejs.org/guide/scoped-css.html#deep-selectors -
据我所知(目前无法测试)这仅在 css 代码在组件内部而不是在 scss 文件中时才有效,但我可能是错的
-
我认为它是否在单独的 scss 文件中并不重要。但是,一旦您进行了测试,请告诉我们。
-
好的,即使在 scss 文件中也可以。我会说创建答案,我会给你积分!