如何在 SCSS 中使用 /deep/?

Posted

技术标签:

【中文标题】如何在 SCSS 中使用 /deep/?【英文标题】:How can I use /deep/ in SCSS? 【发布时间】:2021-07-16 04:50:35 【问题描述】:

您好,我们知道如果我们使用<style scoped>,我们可以保护其他元素不受我们的样式影响。如果我们添加动态元素,我们应该使用parent-class /deep/ current-class,但我如何使用 SCSS 来使用它

示例代码[工作]

<template>
  <div class="slider" ref="slider"></div>
</template>
<style scoped>
.slider 
  width: 100%;
  height: 100%;
  background: green;

.frame /deep/ .frame
  width: 100%;
  height: 100%;
  background: blue;

</style>
<script>
export default 
  name: "Slider",
  mounted() 
    for (let i = 0; i < 3; i++) 
      let frame = document.createElement("div");
      frame.classList.add("frame");
      this.$refs.slider.appendChild(frame);
    
  ,
;
</script>

有错误

<template>
  <div class="slider" ref="slider"></div>
</template>
<style lang="scss" scoped>
.slider 
  width: 100%;
  height: 100%;
  background: green;

.frame /deep/ .frame
  width: 100%;
  height: 100%;
  background: blue;

</style>
<script>
export default 
  name: "Slider",
  mounted() 
    for (let i = 0; i < 3; i++) 
      let frame = document.createElement("div");
      frame.classList.add("frame");
      this.$refs.slider.appendChild(frame);
    
  ,
;
</script>

【问题讨论】:

你说的是&lt;style lang="scss"&gt;吗? 是的,你是对的 【参考方案1】:

已更新。

<style scoped lang="scss">

::v-deep .frame 


</style>

【讨论】:

以上是关于如何在 SCSS 中使用 /deep/?的主要内容,如果未能解决你的问题,请参考以下文章

scss/less修改vant/element ui的默认样式方法

scss文件中使用深度选择器/deep/报错 Expected selector

nuxt、vue 中使用 scss 做预编译 /deep/ expected selector 报错解决办法

如何在子组件 scss 文件中覆盖 main.component.scss 中的 css

如何删除 WebStorm sass-lint 错误“未知的伪选择器 'ng-deep'”

element-ui 修改样式/deep/报错问题