123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- @import './var.less';
- :root {
- --van-calendar-background-color: @calendar-background-color;
- --van-calendar-popup-height: @calendar-popup-height;
- --van-calendar-header-box-shadow: @calendar-header-box-shadow;
- --van-calendar-header-title-height: @calendar-header-title-height;
- --van-calendar-header-title-font-size: @calendar-header-title-font-size;
- --van-calendar-header-subtitle-font-size: @calendar-header-subtitle-font-size;
- --van-calendar-weekdays-height: @calendar-weekdays-height;
- --van-calendar-weekdays-font-size: @calendar-weekdays-font-size;
- --van-calendar-month-title-font-size: @calendar-month-title-font-size;
- --van-calendar-month-mark-color: @calendar-month-mark-color;
- --van-calendar-month-mark-font-size: @calendar-month-mark-font-size;
- --van-calendar-day-height: @calendar-day-height;
- --van-calendar-day-font-size: @calendar-day-font-size;
- --van-calendar-day-margin-bottom: @calendar-day-margin-bottom;
- --van-calendar-range-edge-color: @calendar-range-edge-color;
- --van-calendar-range-edge-background-color: @calendar-range-edge-background-color;
- --van-calendar-range-middle-color: @calendar-range-middle-color;
- --van-calendar-range-middle-background-opacity: @calendar-range-middle-background-opacity;
- --van-calendar-selected-day-size: @calendar-selected-day-size;
- --van-calendar-selected-day-color: @calendar-selected-day-color;
- --van-calendar-info-font-size: @calendar-info-font-size;
- --van-calendar-info-line-height: @calendar-info-line-height;
- --van-calendar-selected-day-background-color: @calendar-selected-day-background-color;
- --van-calendar-day-disabled-color: @calendar-day-disabled-color;
- --van-calendar-confirm-button-height: @calendar-confirm-button-height;
- --van-calendar-confirm-button-margin: @calendar-confirm-button-margin;
- }
- .van-calendar {
- display: flex;
- flex-direction: column;
- height: 100%;
- background: var(--van-calendar-background-color);
- &__popup {
- &.van-popup--top,
- &.van-popup--bottom {
- height: var(--van-calendar-popup-height);
- }
- &.van-popup--left,
- &.van-popup--right {
- height: 100%;
- }
- .van-popup__close-icon {
- top: 11px;
- }
- }
- &__header {
- flex-shrink: 0;
- box-shadow: var(--van-calendar-header-box-shadow);
- }
- &__month-title,
- &__header-title,
- &__header-subtitle {
- height: var(--van-calendar-header-title-height);
- font-weight: var(--van-font-weight-bold);
- line-height: var(--van-calendar-header-title-height);
- text-align: center;
- }
- &__header-title {
- font-size: var(--van-calendar-header-title-font-size);
- }
- &__header-subtitle {
- font-size: var(--van-calendar-header-subtitle-font-size);
- }
- &__month-title {
- font-size: var(--van-calendar-month-title-font-size);
- }
- &__weekdays {
- display: flex;
- }
- &__weekday {
- flex: 1;
- font-size: var(--van-calendar-weekdays-font-size);
- line-height: var(--van-calendar-weekdays-height);
- text-align: center;
- }
- &__body {
- flex: 1;
- overflow: auto;
- -webkit-overflow-scrolling: touch;
- }
- &__days {
- position: relative;
- display: flex;
- flex-wrap: wrap;
- user-select: none;
- }
- &__month-mark {
- position: absolute;
- top: 50%;
- left: 50%;
- z-index: 0;
- color: var(--van-calendar-month-mark-color);
- font-size: var(--van-calendar-month-mark-font-size);
- transform: translate(-50%, -50%);
- pointer-events: none;
- }
- &__day,
- &__selected-day {
- display: flex;
- align-items: center;
- justify-content: center;
- text-align: center;
- }
- &__day {
- position: relative;
- width: 14.285%;
- height: var(--van-calendar-day-height);
- font-size: var(--van-calendar-day-font-size);
- margin-bottom: var(--van-calendar-day-margin-bottom);
- cursor: pointer;
- &--end,
- &--start,
- &--start-end,
- &--multiple-middle,
- &--multiple-selected {
- color: var(--van-calendar-range-edge-color);
- background: var(--van-calendar-range-edge-background-color);
- }
- &--start {
- border-radius: var(--van-border-radius-md) 0 0 var(--van-border-radius-md);
- }
- &--end {
- border-radius: 0 var(--van-border-radius-md) var(--van-border-radius-md) 0;
- }
- &--start-end,
- &--multiple-selected {
- border-radius: var(--van-border-radius-md);
- }
- &--middle {
- color: var(--van-calendar-range-middle-color);
- &::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background-color: currentColor;
- opacity: var(--van-calendar-range-middle-background-opacity);
- content: '';
- }
- }
- &--disabled {
- color: var(--van-calendar-day-disabled-color);
- cursor: default;
- }
- }
- &__top-info,
- &__bottom-info {
- position: absolute;
- right: 0;
- left: 0;
- font-size: var(--van-calendar-info-font-size);
- line-height: var(--van-calendar-info-line-height);
- @media (max-width: 350px) {
- font-size: 9px;
- }
- }
- &__top-info {
- top: 6px;
- }
- &__bottom-info {
- bottom: 6px;
- }
- &__selected-day {
- width: var(--van-calendar-selected-day-size);
- height: var(--van-calendar-selected-day-size);
- color: var(--van-calendar-selected-day-color);
- background: var(--van-calendar-selected-day-background-color);
- border-radius: var(--van-border-radius-md);
- }
- &__footer {
- flex-shrink: 0;
- padding-left: var(--van-padding-md);
- padding-right: var(--van-padding-md);
- }
- &__confirm {
- height: var(--van-calendar-confirm-button-height);
- margin: var(--van-calendar-confirm-button-margin);
- }
- }
|