当前位置: 首页 > news >正文

vue3的element-plus的el-dialog的样式修改无效问题

问题描述

想要修改element-plus的对话框el-dialog中的样式,发现在页面style的scoped属性下,使用:deep深入选择器进行修改是无效的。(vue2下深度选择器是有效的)

//无效
:deep(.el-dialog){background-color: transparent;
}
解决
方法一

el-dialog外嵌套一层div

 <div class="my-dialog"><el-dialog v-model="dialogVisibles"  v-if="dialogVisibles"></el-dialog>
</div><style scoped lang=less>
:deep(.my-dialog){background-color: transparent;
}
// 使用深度是选择器也生效了
:deep(.el-dialog){background-color: transparent;
}
<style >
方法二

不在外面前套div, style 不使用 scoped

.el-dialog {background-color: transparent;
}
// 或则 el-dialog 加上class
.my-dialog {background-color: transparent;
}
原理

网友:

在组件中中 把el-dialog放在一个div中,然后:deep(你要修改的元素class) , 还有一个重要的前提是dialog中有一个属性append-to-body ,把这个属性设成false 或者不写才可以用深度选择器修改样式,这个属性就是把dialog插入到body中,不然就算包裹在div中依然是取不到样式

这个问题并不是elmentUi和element-plus引起的,而是vue2和vue3的区别。vue2中要求单个组件文件中的template中只能有一个元素(如:div),而vue3是可以有多个的,vue3中不生效,是因为直接把el-dialog写在了template根目录中,其实只要在template中添加一个div,所有东西都放到div中就可以了。本质原因是:页面中el-dialog的渲染位置不同,添加div就会在当前组件位置渲染,如果没有div,就会在中渲染。这个答案大家接受吗?

参考

http://www.lryc.cn/news/187951.html

相关文章:

  • 归纳所猜半结论推出完整结论:CF1592F1
  • WPFdatagrid结合comboBox
  • Markdown类图之继承、实现、关联、依赖、组合、聚合总结(十五)
  • @MultipartConfig注解
  • Python并发编程简介
  • WebSocket介绍及部署
  • 自动求导,计算图示意图及pytorch实现
  • 睿伴科创上线了
  • 域名抢注和域名注册
  • 【20】c++设计模式——>组合模式
  • Jetpack:004-如何使用文本组件
  • JVM(八股文)
  • C#WPF标记扩展应用实例
  • 四维曲面如何画?matlab
  • 软件培训测试高级工程师多测师肖sir__html之作业11
  • 详解一典型的反激式开关电源方案
  • AI 大框架基于python来实现基带处理之TensorFlow(信道估计和预测模型,信号解调和解码模型)
  • 阿里云上了新闻联播
  • 算法练习12——跳跃游戏
  • Java架构师系统架构设计服务拆分
  • 通用任务批次程序模板
  • Rust专属开发工具——RustRover发布
  • 数据结构:链表(1)
  • 软件测试之概念篇2(瀑布模型、螺旋模型、增量模型和迭代模型、敏捷模型,V模型、W模型)
  • 【【萌新的SOC学习之重新起航SOC】】
  • ElasticSearch 学习7 集成ik分词器
  • [NewStarCTF 2023 公开赛道] week1
  • ThreeJS-3D教学六-物体位移旋转
  • BC v1.2充电规范
  • 判断一个整数是否回文