日历组件默认样式如下图,但是我不想要右上角的红点,并且日期下面的数字要加红色背景,变成圆形,还是先用元素检查找到元素的类名,然后通过/deep/来覆盖样式,需要注意的是,lang要scss或者less,lang必须要写,否则不生效。
不显示红点,将背景色设置为透明即可。
其他元素都用同样的方法覆盖样式。
<style lang="scss" scoped>
// 右上角红点颜色设置为透明
/deep/ .uni-calendar-item__weeks-box-circle {
background-color:transparent;
}
// 日期下面的数字加红色背景,设置为圆形
/deep/ .uni-calendar-item--extra {
width: 20px;
height: 20px;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
background-color: #d63a2b;
color: #fff;
}
// 今天的日期背景修改为红色
/deep/ .uni-calendar-item--isDay {
background-color: #d63a2b;
}
// 被点击日期的背景色修改为红色
/deep/ .uni-calendar-item--checked {
background-color: #d63a2b;
}
</style>
最终效果:
进过样式覆盖后,基本效果都达到了预期。
但是今日的颜色还是蓝色,我试了一下,用上述方法不管用,这时候就可以试试直接去组件里修改,通过全局搜索可以找到样式的具体在哪个文件里。
现在就把今日的颜色也改为红色了。
总结一下:先查找元素,然后用/deep/覆盖样式,如果无法覆盖,就直接去组件里修改样式。