element ui自带样式不生效的解决办法(::v-deep也不生效)

当在使用ElementUI时遇到内置样式修改无效的情况,可以通过设置`append-to-body`为`false`,并使用`popper-class`配合深度选择器`::v-deep`来修改时间选择器的样式。对于tooltip和类似的组件,可以调整`getPopupContainer`以改变其挂载位置,从而实现样式的有效修改。
摘要由CSDN通过智能技术生成

问题描述

一般在使用element ui 的时候需要修改其内置的样式,这个时候我们就要使用穿透了::v-deep 或者/deep/ 但是有时候这个也不生效,怎么办呢?

解决办法

第一步

我这里举个例子,比如时间选择器.el-time-panel的样式我无法修改 穿透也不行,即便加上了!important也不行。 这个时候查看官方文档,发现有一个默认的属性append-to-body 标识插入到body元素上,默认为true。 这里设置为false

第二步

使用深度选择器在el-date-picker上加上 popper-class属性 定义类别

 <el-date-picker
                style="width: 100%"
                v-model="agentForm.graceperiod"
                type="datetime"
                :placeholder="$t('AuthAgent.selectTime')"
                value-format="timestamp"
                :picker-options="pickerOptions"
                popper-class="date-class"
                :append-to-body="false"
                @change="handle"
              >
              </el-date-picker>

我这里是date-class 最后使用深层选择器就可以修改了

::v-deep .date-class{
    .el-time-panel {
    margin: 5px -23px !important;
}
} 

先记录下来,后续再好好研究,经过以上步骤一定可以完美解决你的问题

最近又发现了一些类似的东西 比如
tooltip中的【getPopupContainer】 也是因为插到body上了 所以无法修改样式 这里改成这样的

:getTooltipPopupContainer="triggerNode => {return triggerNode.parentNode}"

antdsign a-popconfirm 也是这样 添加这句话
···
:getPopupContainer=‘(triggerNode) => triggerNode.parentElement’
···

v-deepVue.js 框架提供的一个自定义指令,它用于解决 CSS 样式中选择器的层级嵌套问题,可以让我们在组件中使用深度选择器,轻松实现样式穿透。 在使用 element UI 组件库时,我们可能需要修改组件内部的样式,但是使用普通的 CSS 选择器往往会被 element UI样式所覆盖,导致无法生效。这时我们可以使用 v-deep 指令来解决这个问题。 然而,如果在使用 element UI 时发现 v-deep 指令无效,可能有以下几种原因: 1. element UI样式优先级高:element UI样式可能比我们的样式优先级更高,导致我们的样式被覆盖,此时可以通过给样式加上 !important 来提高优先级。 2. v-deep 的使用方式不正确:v-deep 指令需要与 CSS 选择器组合使用,即在选择器前加上 /deep/、>>>、或者 ::v-deep,如果使用方式不正确,指令就无法生效。 3. 业务代码问题:可能出现业务代码中有样式冲突,或者使用了其他的样式覆盖了 v-deep 指令的样式,这时需要检查业务代码中的样式是否与 element UI样式发生了冲突。 4. Vue.js 版本问题:Vue.js 的版本可能会对 v-deep 指令的兼容性产生影响,如果使用的版本过低,就可能导致 v-deep 指令失效,需要升级 Vue.js 版本或者使用其他的解决方案。 总之,如果在使用 element UI 时遇到了 v-deep 指令无效的问题,我们可以通过检查样式优先级、指令使用方式、业务代码以及 Vue.js 版本等方面来找到解决办法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值