关于el-date-picker组件修改输入框以及下拉框的样式

因为业务需求,从element plus直接拿过来的组件样式和整体风格不搭,所以要修改样式,直接deep修改根本不生效,最后才发现el-date-picker组件有一个popper-class属性,通过这个属性我们就能够修改下拉框的样式,下面就直接放代码吧,希望能帮到你噢。

javascript 复制代码
<template>
// 如果需要修改输入框的样式,最好在el-date-picker外套一个div,样式就在这个div下写,
// 避免污染全局的样式
  <div class="time-box"> 
    <el-date-picker 
	    v-model="time" 
	    type="date" 
	    prefix-icon="CaretBottom"  // 组件的前置图标可以通过这个属性修改
	    placeholder="请选择时间"
     	popper-class="popperClass"  // 下拉框的样式通过该属性修改
      />
  </div>
</template>

<script setup name="TimeSelect">
import { onBeforeUnmount, provide, reactive, readonly, ref } from "vue";

const time = ref(null);

</script>
// 这里需要注意的是:不要在<style>里面写 scoped
<style lang="scss" >
// 这里是下拉框的样式,需要修改什么样式,就直接通过浏览器查看你要改的样式,然后就改就行
.popperClass {

  //图标样式
  .el-icon {
    color: #fff;
  }

  //头部样式
  .el-date-picker__header-label {
    color: #fff;
    font-size: 18px;
  }

  // 星期样式
  .el-date-table th {
    color: #fff;
  }
  // 时间选择器层样式
  .el-picker-panel {
    z-index: 2007;
    color: #fff;
    background: rgba(30, 84, 128, 0.8);
    border: 1px solid rgba(29, 128, 218, 1);
  }
}
// 输入框的样式在这里改就行
.time-box {
  .el-input__wrapper {
    background-color: transparent;
    border-radius: 0px;
    box-shadow: none;
    // width: 50px;
  }

  .el-input__inner {
    color: #ffffff;
  }

  .el-date-editor.el-input,
  .el-date-editor.el-input__wrapper {
    width: 120px;
  }

  .el-input__wrapper:hover {
    box-shadow: none;
  }

  .el-input {
    --el-input-focus-border-color: transparent;
    --el-input-border: none;
  }

  .el-popper.is-light {
    background: #255783;
    border: 1px solid #106c94;
  }
}
// 弹出框popper层样式
.el-picker__popper.el-popper {
  background: rgba(30, 84, 128, 0.8);
  border: 1px solid rgba(29, 128, 218, 1);
  box-shadow: rgba(30, 84, 128, 0.8);
}
// 弹出框外部尖三角样式
.el-popper.is-light .el-popper__arrow::before {
  border: 1px solid rgba(29, 128, 218, 1);
  background: rgba(29, 128, 218, 1);
}
</style>

最后的效果图:

相关推荐
sunly_19 分钟前
TypeScript总结:16、面向对象速查
前端·javascript·typescript
张元清23 分钟前
React useInterval Hook:没有过期闭包的 setInterval (2026)
javascript·react.js
MXN_小南学前端23 分钟前
React超长文本域中实现“返回顶部”浮动按钮
前端·javascript·react.js
gs801401 小时前
解构 Cordis:面向“时空可组合性”的 TypeScript 元框架深度剖析
前端·javascript·typescript
Highcharts.js1 小时前
Highcharts大数据渲染模块Boost实战与参数最佳实践表
javascript·数据可视化·boost·highcharts·大数据渲染·加速配置·参数表
岁岁种桃花儿1 小时前
Vue核心语法第一篇:Vue是什么?
前端·javascript·vue.js
Highcharts.js2 小时前
数据可视化避坑指南 ——开发中常见图表错误与修复方案
javascript·信息可视化·数据可视化·highcharts·数据可视化避坑·修复方案
观无2 小时前
若依EasyExcel实现单元格合并
开发语言·前端·javascript
xiaohaiAIgeo3 小时前
【2026年】HG/T 20656-2024化工暖通空调设计规范:新版标准的变化与影响
java·前端·javascript·科普知识
立少→万能汉编3 小时前
用“立少→超文本”写静态网页,标签<倍>
服务器·前端·javascript