使用element-plus组件,修改date-picker默认样式

使用深度选择器来修改子组件的样式,今天遇到一个需求,在el-drawer中嵌入的el-date-picker,再一次总结一下深度选择器的用法,需求如下:

template内容:

<el-drawer size="70%" v-model="drawer" title="选择年份" :show-close="false" direction="rtl">
   <el-date-picker v-model="selectedDate"  :disabledDate="disabledDate" type="year" placeholder="选择年"></el-date-picker>
</el-drawer>

使用lessscoped的CSS如下:

.el-input__inner{
    font-size: 26px;
}

目的是修改选择的年份的大小,让其显示为26px大小。结果运行代码,效果如下:

我们发现显示的年份字号并没有变大。我们同时添加字体颜色和对齐方式,以更清楚的看到效果,使用深度选择器进行控制。修改如下:

 

:deep(.el-input__inner){
    font-size: 26px;
    text-align: center;
    color:rgb(8, 101, 172) ;
}

运行效果如下:


总结深度选择器用法如下:

由于vue组件的封装目的是为了让组件之间不互相影响,着很好的解决了组件之间相互干扰的问题。但是同时也带来了一些问题:有时候又需要修改子组件的样式,此时vue中,我们可以使用深度选择器,在父组件中来影响子组件,从而解决这个问题。

  • CSS原生使用符号">>>"进行深度。
  • 在使用了CSS的预编译器时,
    1. VUE2中,可以使用/deep/或::v-deep进行深度选择
    2. VUE3中,推荐使用:deep(selector)进行深度选择

其他几个CSS相关的选择:

  • :slotted()

:slotted():在子组件定义样式插槽内容样式

默认情况下,作用域样式不会影响到 <slot/> 渲染出来的内容,因为它们被认为是父组件所持有并传递进来的。

<template>
  <div>
    <slot>插槽内容,如果外部给出,则替换掉</slot>
  </div>
</template>
 
<style lang="less" scoped>
:slotted(.blue) {
  color: blue;
}
</style>
  • :global()

:global() :全局选择器,定义全局样式,不用单开一个没有scoped的style。

<style scoped>
:global(.el-input__inner) {
    color: red;
}
</style>
<!-- 等效于 -->
<style>
 .el-input__inner{
     color:red
 }
</style>
  • 动态css(v-bind)

vue3单文件组件的 <style> 标签支持使用 v-bind CSS 函数将 CSS 的值链接到动态的组件状态,也就是我们可以在style标签中引入script标签中的响应式变量。

<template>
    <span class='sc'>
        span 内容
    </span>
</template>
 
<script setup>
import { ref } from 'vue';
const redColor = ref('red')
 
</script>
 
<style scoped>
.sc{
    color: v-bind(redColor);
}
</style>

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
修改 element-plus 的 el-date-picker 样式,可以使用以下两种方法: 1. 使用全局样式覆盖默认样式 在全局样式中添加以下代码,即可修改 el-date-picker样式: ```css /* 修改日期选择器的宽度 */ .el-date-picker { width: 200px; } /* 修改日期选择器中的日期单元格的背景色 */ .el-date-table td.available:hover, .el-date-table td.current { background-color: #f0f0f0; } ``` 2. 使用自定义主题 element-plus 提供了自定义主题的功能,可以通过修改主题变量来改变组件样式。具体步骤如下: 1. 在项目中创建一个 `element-variables.scss` 文件,并在其中定义需要修改的主题变量,例如: ```scss $--color-primary: #409EFF; $--border-radius-base: 4px; ``` 2. 在 `main.js` 中引入 `element-variables.scss` 文件,并使用 `ElThemeProvider` 组件将应用包裹起来,例如: ```js import { createApp } from 'vue'; import App from './App.vue'; import ElementPlus from 'element-plus'; import 'element-plus/lib/theme-chalk/index.css'; import './element-variables.scss'; const app = createApp(App); app.use(ElementPlus); app.mount('#app'); ``` 3. 在组件使用自定义主题,例如: ```html <template> <el-date-picker v-model="date" :picker-options="pickerOptions"></el-date-picker> </template> <script> export default { data() { return { date: '', pickerOptions: { shortcuts: [{ text: '最近一周', onClick(picker) { const end = new Date(); const start = new Date(); start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); picker.$emit('pick', [start, end]); } }, { text: '最近一个月', onClick(picker) { const end = new Date(); const start = new Date(); start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); picker.$emit('pick', [start, end]); } }] } }; } };</script> <style scoped> /* 修改日期选择器的宽度 */ .el-date-picker { width: 200px; } /* 修改日期选择器中的日期单元格的背景色 */ .el-date-table td.available:hover, .el-date-table td.current { background-color: #f0f0f0; } </style> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值