vue项目为例解决element ui 时间选择器 picker使用样式穿透不起作用问题

在开发中,为不干扰其他组件,需修改时间选择器的样式。使用`popper-class`属性添加特定类名,如`RedefineScope-node-repeat`,然后在全局CSS中针对这个类名进行样式覆盖,以实现定制。注意避免类名冲突,确保样式隔离。
摘要由CSDN通过智能技术生成

今天在开发中 需要修改时间选择器弹出的这个组件的样式
在这里插入图片描述
但这个东西比较坑爹 首先 不能影响其他组件
就是其他组件用了时间选择器 不能受到我们写的样式的影响
那么 就只好穿透了
但你会发现 这东西是作用与body下的 就很坑 穿透我试了挺久的 不起作用
但官方文档有提供给我们一个属性
popper-class 能给这个弹出的框外面加一个class
我的代码是这样写的

<el-date-picker
    v-model="timeConditions"
    type="datetimerange"
    align="right"
    unlink-panels
    range-separator=""
    start-placeholder="开始日期"
    end-placeholder="结束日期"
    class="pickerTime"
    ref = "datePicker"
    :picker-options="pickerOptions"
    @change = "defineTimeline"
    popper-class="RedefineScope-node-repeat"
>
</el-date-picker>

主要就是
popper-class=“RedefineScope-node-repeat”
然后 我们看界面
在这里插入图片描述
那么 我设置的这个class RedefineScope-node-repeat就上去了
可能大家又想用穿透 啊 这里帮大家试过了 没效果
不过 我们这个类名可以取特殊一点 不要跟别人重复
然后这样写样式

<style>
.RedefineScope-node-repeat .el-date-range-picker__time-header{
    display: none !important;
}
.RedefineScope-node-repeat .el-picker-panel__footer .el-button--text.el-picker-panel__link-btn{
    display: inline-block !important;
}
.RedefineScope-node-repeat .el-date-table td span{
    text-align: center;
}
</style>

没有 scoped 可能有人就会说 那如果别人也用了RedefineScope-node-repeat不是会受到样式影响吗?
不要钻牛角尖啊 我觉得没有这个可能 如果有 那就改一下类名嘛
不要做完美主义者

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值