日历组件默认样式如下图,但是我不想要右上角的红点,并且日期下面的数字要加红色背景,变成圆形,还是先用元素检查找到元素的类名,然后通过/deep/来覆盖样式,需要注意的是,lang要scss或者less,lang必须要写,否则不生效。

不显示红点,将背景色设置为透明即可。
其他元素都用同样的方法覆盖样式。
- // 右上角红点颜色设置为透明
- /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;
- }
-
最终效果:
进过样式覆盖后,基本效果都达到了预期。

但是今日的颜色还是蓝色,我试了一下,用上述方法不管用,这时候就可以试试直接去组件里修改,通过全局搜索可以找到样式的具体在哪个文件里。

现在就把今日的颜色也改为红色了。

总结一下:先查找元素,然后用/deep/覆盖样式,如果无法覆盖,就直接去组件里修改样式。