sass文件中使用深度选择器 /deep/不起作用

2023-05-16

目录

一、问题

二、原因

三、解决

使用deep深度选择器的基本步骤

四、总结


一、问题

1.想在当前的.vue文件中使用/deep/深度选择器修改第三库引入的组件或自定义组件的样式,但是修改不成功

二、原因

1.自定义组件my-component的结构如下:

<template>
    <div class="outer">
        <div class="inner">
            <div class="content">
                <p>写出有效的代码使我快乐!</p>
            </div>
        </div>
    </div>
</template>

2.修改样式的方法

 1)html文件

<my-component class="myStyle"> </my-component>

2)css文件

<style lang="scss" scoped>
.myStyle{
    /deep/ .outer{
        /deep/ .inner{
            /deep/ .content{
                 background:red;
            }
        }
    }
}
</style>

3.自我感觉良好,没有问题,但是就是不起作用。

   IDE还提示了我写的css样式的层次,检查以后更是确信自己没有问题。

4.在控制台检查后才发现这个样式根本就没有生效(在浏览器工具中都看不到样式),只有 myStyle这个 class加在了 class为outer的div上面。

5.多次修改后,才发现原因:deep不能嵌套,无论要修改的样式藏得有多深,只需要使用一次deep就可以了

三、解决

1.使用deep深度选择器的前提

 1)仅当你的style标签中使用了 scoped 属性才需要使用 /deep/选择组件内部的 标签

 2)如果你的style标签中没有scoped属性,那么使用  /deep/选择器定义的任何样式都是无效的直接使用普通的id选择器、类选择器等就可以选择 组件内部深层嵌套的标签

2.使用deep深度选择器的基本步骤

1)在使用组件的地方添加一个自定义class

<my-component class="myStyle"></my-component>

2)修改css文件

<style lang="scss" scoped>
.myStyle{

  /deep/ .content{
      background:red
  }
}
<style>

3)问题成功解决,浏览器工具中可以看到添加的样式

4)如果浏览器工具中显示样式被删除,可以使用 !important 提高样式的优先级即可 

<style lang="scss" scoped>
.myStyle{

  /deep/ .content{
      background:red !important
  }
}
</style>

5)如果你需要同时给嵌套组件内部的多个class添加样式,也只需要使用一次deep即可,deep里面的class正常写即可。

  .form-specimen-collection {
    color: var(--textColorPrimary);
    //只需要在最外层加 v-deep
    ::v-deep .el-col {
      flex-direction: column;
      //里面的按照原有的样式写即可
      //具体实现效果是:第二行文字变成了 红色
      .disabled{
        color:red;
      }
    }
  }

 6)如果以上方法尝试后仍然有问题。

      可以尝试将标签  /deep/改成  ::v-deep ,因为 vue3中 /deep/属性不生效。

      如你所见,5)中我使用的是 ::v-deep,因为现在的项目采用 vue3写的。(现发现之前写的有点问题,特来更新)

四、总结

1.deep不能嵌套,不能嵌套,不能嵌套!

2.无论样式结构多深,deep都只能用一次;否则会失效

3.组件内部嵌套自定义组件,修改自定义组件中的多个样式,也只需要使用一次deep即可。

4.仅当你在 style标签中使用了 scoped属性时,/deep/属性才是有用的。

/*

希望对你有帮助!

如有错误,欢迎指正!

*/

--------------------------------------------------答疑-------------------------------------------------------------------------

1.关于 ahaohaoo 提到的: 如果你的style标签中没有scoped属性,那么使用 /deep/选择器定义的任何样式都是无效的 --------------这句话是错的

写的太久了,我也忘记了,刚测试了一下,结果如下:没有scoped时,深度选择器确实不生效(f12检查都找不到设置的样式)。无论style是 css还是sass。

例如:给button中文字设置颜色为 红色

注:虽然样式使用了 :deep(xxx),但是 /deep/也是同理的,它们都是深度选择器。/deep/也已经测试过了,结果一样,感兴趣的读者,可以自行尝试。

没有加 scoped

sass 添加了scoped

css添加了 scoped

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sass文件中使用深度选择器 /deep/不起作用 的相关文章

随机推荐

  • 一个简单的flask实例

    Flask是python编写的轻量级的web框架 span class token comment 导入Flask类 span span class token keyword from span flask span class toke
  • 基础命令(四)

    LINUX基础命令 xff08 四 xff09 一 Tail命令 1 tail使用方法 tail命令用途是依照要求将指定的文件的最后部分输出到标准设备 xff0c 通常是终端 xff0c 通俗讲来 xff0c 就是把某个档案文件的最后几行显
  • Snipaste常用快捷键(详细总结)

    Snipaste快捷键 xff08 详细总结 xff09 全局快捷键 全局操作截屏F1贴图F3退出当前截图Esc截屏并自动复制Ctrl 43 F1隐藏 显示所有贴图Shift 43 F3切换到另一组贴图Ctrl 43 F3 鼠标贴图相关操作
  • 4位数值比较器电路

    4位数值比较器电路 题目描述 xff1a 使用门级描述方式 xff0c 实现4位数值比较器 某4位数值比较器的功能如下表 96 timescale 1ns 1ns module comparator 4 input 3 0 A input
  • Maven项目pom.xml project标签爆红解决方法

    今天在打开项目的时候 xff0c 发现了一个Maven项目的问题 xff0c 在Maven项目的pom xml文件中 xff0c project标签爆出了一个错误 parent relativePath of POM com hrp spr
  • 人工智能学习笔记五——孪生神经网络

    本文将用孪生神经网络模型 xff0c 对手写数字集minist进行相似度比较 xff0c 用的框架是keras 如果还不清楚神经网络 xff0c 可以看一下这篇文章 神经网络 caodong0225 github io MNIST 是一个手
  • Docker Swarm实战初探

    声明 xff1a 本文CSDN作者原创投稿文章 xff0c 未经许可禁止任何形式的转载 xff0c 原文链接 环境 宿主机 xff1a macOS 10 15 7虚拟机平台 xff1a Parallels Desktop 15 1 2虚拟机
  • 零基础DIY四轴飞行器超级详细保姆级教程(STM32F407ZGT6主控、WIFI图传、陀螺仪平衡、气压计/超声波定高、手机蓝牙控制等功能)

    前言 大四毕业后暑假没事做就花了一点DIY了一个四轴飞行器 xff0c 是比较大的那种F450机架 xff0c 不是那种PCB板做机架的小四轴 xff0c 因为我也是从零基础开始做的四轴 xff0c 现在就想把自己的过程写成博客分享在网上
  • shell教程

    shell 简介 Shell是一种脚本语言 xff0c 通常用于在Unix和类Unix操作系统上进行命令行交互 它是用户与操作系统内核之间的接口 xff0c 允许用户通过命令行或脚本文件来控制计算机上的操作 Shell程序通常用于执行复杂的
  • matlab画图常用函数image、imagesc、imshow区别

    1 image函数 从数组显示图像 xff0c 直接把矩阵中的值当作索引值 xff08 称为直接映射 xff09 xff0c 即数值1对应RGB1 xff0c 数值2对应于RGB2 xff0c 当小于1或大于64时表现为两端的颜色 语法1
  • 树莓派WiFi连接问题及网页打开问题的解决

    树莓派WiFi连接问题及网页打开问题的解决 一 问题描述 前一段时间在网上买了一个树莓派 4b计划做一个人脸识别的智能锁 xff0c 前一段时间整赶上期末考试 xff0c 挤时间做了做人脸识别以及人体红外感知模块 xff0c 大致能简单实现
  • C++11之正则表达式(regex_match、regex_search、regex_replace)

    在C 43 43 11中引入了正则表达式 字符规则 先来了解一下这个字符的含义吧 字符描述 转义字符 匹配字符行尾 匹配前面的子表达式任意多次 43 匹配前面的子表达式一次或多次 xff1f 匹配前面的子表达式零次或一次 m 匹配确定的m次
  • Java中Lambda表达式使用及详解

    Java中Lambda表达式使用及详解 前言 一 Lambda表达式的简介 Lambda表达式 xff08 闭包 xff09 xff1a java8的新特性 xff0c lambda运行将函数作为一个方法的参数 xff0c 也就是函数作为参
  • 栈的出栈次序及次序种类

    学过数据结构的程序猿应该都清楚 xff0c 栈是一种先入后出 xff0c 后入先出 xff08 LIFO xff09 的表 即插入和删除都只能在一个位置上进行 xff0c 即栈顶位置 对栈的基本操作有Push xff08 入栈 xff09
  • ANO匿名飞控时间片调度移植至普通STM32工程

    工程结构 时间片调度相关的代码位于SCHEDULER目录下的Scheduler和Task文件中 xff0c 匿名飞控原本的时钟由传感器输出的1ms脉冲实现的外部中断提供 xff0c 为使时间片调度算法可以用于一般的工程 xff0c 此处改为
  • for(let i in arr) for(let i of arr )与普通for循环的区别

    span class token keyword let span arr span class token operator 61 span span class token punctuation span span class tok
  • 执行webpack命令出错:无法识别webpack && Can‘t resolve ‘./src‘ in xxx

    一 webpack 无法将 webpack 项识别为 cmdlet 函数 脚本文件或可运行程序的名称 解决方案 xff1a 全局安装webpack 和webpack cli 命令 xff1a cnpm install webpack cli
  • 豆瓣API获取的图片不显示

    一 问题 xff1a 使用豆瓣API获取到的数据不能正常显示 二 解决方法 从控制台中查看图片的url地址发现 xff1a 同为一个网站提供的数据但是提供的url地址的域名却不同 这是不符合情理的 xff0c 因为为了使数据有规律 xff0
  • 使用 vue cli 的 vue serve命令单独运行.vue文件报错: Error: Cannot find module ‘@vue/compiler-sfc/package.json‘

    目录 一 问题 二 无需配置直接运行 vue文件 三 解决 1 详细错误 四 总结 一 问题 根据vue cli官方文档 https cli vuejs org zh guide prototyping html学习无需配置直接运行 vue
  • sass文件中使用深度选择器 /deep/不起作用

    目录 一 问题 二 原因 三 解决 使用deep深度选择器的基本步骤 四 总结 一 问题 1 想在当前的 vue文件中使用 deep 深度选择器修改第三库引入的组件或自定义组件的样式 xff0c 但是修改不成功 二 原因 1 自定义组件my