首页 > 其他分享 >vue3中的样式为什么加上scoped不生效

vue3中的样式为什么加上scoped不生效

时间:2023-12-18 09:33:06浏览次数:33  
标签:样式 deep cell scoped vue3 组件 选择器

<style>标签添加scoped属性时,Vue会自动为该组件内的所有元素添加一个独特的数据属性,例如data-v-f3f3eg9。同时,它也会修改你的CSS选择器,使得它们只匹配带有这个独特数据属性的元素。这样做的目的是为了确保样式只应用于当前组件内的元素,避免影响到其他组件。
然而,当你尝试覆盖子组件(在这个例子中是Vant的van-cell组件)的样式时,你会遇到问题,因为子组件的根元素不会有这个独特的数据属性,因此它们不会被scoped样式所影响。
为了解决这个问题,你有几个选项:

  • 使用/deep/ 或 >>> 选择器(这些是旧版本的深度选择器,可能在某些构建系统中仍然有效):
<style lang="scss" scoped>
.my-cumstom-cell /deep/ .van-cell__value {
  text-align: left;
}
</style>
  • 使用 :deep() 伪函数(这是 Vue 3 推荐的方式):
<style lang="scss" scoped>
.my-custom-cell :deep(.van-cell__value) {
  text-align: left;
}
</style>

请注意,不同的构建工具和预处理器可能对深度选择器的支持有所不同。如果你在使用 Vue CLI,上述方法应该有效。如果你使用的是其他构建工具,可能需要查阅相应的文档来了解如何正确使用深度选择器。

标签:样式,deep,cell,scoped,vue3,组件,选择器
From: https://www.cnblogs.com/tommywow/p/17910339.html

相关文章

  • vue3构建全流程
    1.创建工程:npminitvue@latest  删除components下的所有自动生成文件:新建目录api、utils、views  将request.js放在utils下,request.js内容://定制请求的实例//导入axiosnpminstallaxiosimportaxiosfrom'axios';//定义一个变量,记录公共的前缀,bas......
  • css样式穿透
    在AntDesign中,Table组件提供了一些属性和样式可以用来定制表格的外观,包括表头和每一行的背景色,以及每一列的样式。以下是一些常用的属性和样式:1.表头背景色和每一行的背景色:使用columns属性设置每一列的配置,其中可以包含title属性用于设置列标题。使用rowClassName......
  • 我的qt 控件样式设计
        /*中央窗口央视*/QWidget#CentralWidget{background:rgb(237,255,243);}/*测试题管理窗口*/QWidget#ManageTestQuestions{/*background:rgb(0,0,0,80);*/border-image:url(:/resource/modified5.png);}/*测试题编辑窗口*/QWidget#EditTe......
  • qt滚动条样式设计
    /*整个垂直滚动条区域样式*/QScrollBar:vertical{border:none;background:rgb(30,30,30);width:10px;margin:0px00px0;}/*整个水平滚动条区域样式*/QScrollBar:horizontal{border:none;background:rgb(30,30,30);height:10px;m......
  • python之tkinter的鼠标样式
    tkinter的Label、Button、Enter等等cursor都可以使用表中特性改变鼠标样式。取值样式备注arrow based_arrow_down based_arrow_up boat bogosity bottom_left_corner bottom_right_corner bottom_side bottom_tee box_spiral center_ptr circle clock coffee_mug cro......
  • vue3+vite+js中二次封装axios
    一、安装axiosnpmiaxios二、文件结构涉及到的文件:utils/request.sjapi/index.js(可以根据不同页面在api文件下新建不同文件夹,方便管理)vite.config.js三、request.js对axios进行简单的二次封装importaxiosfrom"axios";constrequest=axios.create({//......
  • Vue3响应式概念
    响应式的基本概念响应式是指当数据发生变化时,系统会自动更新与数据相关的DOM结构。在Vue2中,响应式系统的实现基于 Object.defineProperty。然而,Object.defineProperty 有一些局限,如:无法监听数组的变化、需要遍历对象的每个属性进行监听、性能开销较大。在Vue3中,响应式系统......
  • style中通过import引入样式时,scoped不生效
    通过import引入的外部css文件,这种引入方式是全局的,也会影响其他组件的页面样式<stylelang="scss"scoped>@importurl(../style.scss);</style>此时虽然用了scoped,但是样式还是全局的。造成样式污染的案例:(1)、父页面中引入css文件<stylescoped>@import"~@/assets/sty......
  • vue3Cron表达式组件
    npm安装no-vue3-cron引入报错,就直接把代码拿来自己改了no-vue3-cron仓库地址:https://github.com/wuchuanpeng/no-vue3-cronvue-cron.vue<stylelang="scss">.no-vue3-cron-div{.language{position:absolute;right:25px;z-index:1;}.el-tabs{......
  • vue3.0项目搭建
    一、安装vue3脚手架卸载vue2脚手架npmuninstall-gvue-cli清除缓存npmcacheclen--force安装最新脚手架npminstall-g@vue/cli查看脚手架版本vue-V二、构建项目创建项目vuecreate项目名选择配置自定义配置,回车上下键选择Linter/......