File tree 3 files changed +180
-0
lines changed
3 files changed +180
-0
lines changed Original file line number Diff line number Diff line change
1
+ <!DOCTYPE html>
2
+ < html lang ="en ">
3
+ < head >
4
+ < meta charset ="UTF-8 " />
5
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
6
+ < title > Calendar</ title >
7
+ < link rel ="stylesheet " href ="style.css " />
8
+ < link
9
+ rel ="stylesheet "
10
+ href ="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css "
11
+ />
12
+ < link
13
+ href ="https://fonts.googleapis.com/css2?family=Quicksand:wght@300;400;500;600;700&display=swap "
14
+ rel ="stylesheet "
15
+ />
16
+ </ head >
17
+ < body >
18
+ < div class ="container ">
19
+ < div class ="calendar ">
20
+ < div class ="month ">
21
+ < div class ="date ">
22
+ < h1 > </ h1 >
23
+ < p > </ p >
24
+ </ div >
25
+ </ div >
26
+ < div class ="weekdays ">
27
+ < div > Mon</ div >
28
+ < div > Tue</ div >
29
+ < div > Wed</ div >
30
+ < div > Thu</ div >
31
+ < div > Fri</ div >
32
+ < div > Sat</ div >
33
+ < div > Sun</ div >
34
+ </ div >
35
+ < div class ="days "> </ div >
36
+ </ div >
37
+ </ div >
38
+
39
+ < script src ="script.js "> </ script >
40
+ </ body >
41
+ </ html >
Original file line number Diff line number Diff line change
1
+ const date = new Date ( ) ;
2
+
3
+ const monthDays = document . querySelector ( ".days" ) ;
4
+
5
+ const lastDay = new Date ( date . getFullYear ( ) , date . getMonth ( ) + 1 , 0 ) . getDate ( ) ;
6
+
7
+ const firstDayIndex = date . getDay ( ) ;
8
+
9
+ const months = [
10
+ "January" ,
11
+ "February" ,
12
+ "March" ,
13
+ "April" ,
14
+ "May" ,
15
+ "June" ,
16
+ "July" ,
17
+ "August" ,
18
+ "September" ,
19
+ "October" ,
20
+ "November" ,
21
+ "December" ,
22
+ ] ;
23
+
24
+ document . querySelector ( ".date h1" ) . innerText = months [ date . getMonth ( ) ] ;
25
+
26
+ document . querySelector ( ".date p" ) . innerText = new Date ( ) . toDateString ( ) ;
27
+
28
+ let days = "" ;
29
+
30
+ for ( let i = firstDayIndex - 1 ; i > 0 ; i -- ) {
31
+ days += `<div class="empty"></div>` ;
32
+ }
33
+
34
+ for ( let i = 1 ; i <= lastDay ; i ++ ) {
35
+ if ( i === new Date ( ) . getDate ( ) && date . getMonth ( ) === new Date ( ) . getMonth ( ) ) {
36
+ days += `<div class="today">${ i } </div>` ;
37
+ } else {
38
+ days += `<div>${ i } </div>` ;
39
+ }
40
+ }
41
+
42
+ monthDays . innerHTML = days ;
Original file line number Diff line number Diff line change
1
+ * {
2
+ margin : 0 ;
3
+ padding : 0 ;
4
+ box-sizing : border-box;
5
+ font-family : sans-serif;
6
+ }
7
+
8
+ .container {
9
+ width : 100% ;
10
+ height : 100vh ;
11
+ background-color : salmon;
12
+ color : lightgray;
13
+ display : flex;
14
+ justify-content : center;
15
+ align-items : center;
16
+ }
17
+
18
+ .calendar {
19
+ width : 450px ;
20
+ height : 520px ;
21
+ background-color : black;
22
+ box-shadow : 4px 4px 8px rgba (0 , 0 , 0 , 0.4 );
23
+ border-radius : 10px ;
24
+ }
25
+
26
+ .month {
27
+ width : 100% ;
28
+ height : 120px ;
29
+ background-color : lightseagreen;
30
+ display : flex;
31
+ justify-content : center;
32
+ align-items : center;
33
+ padding : 0 20px ;
34
+ text-align : center;
35
+ border-radius : 10px 10px 0 0 ;
36
+ }
37
+
38
+ .month i {
39
+ font-size : 25px ;
40
+ cursor : pointer;
41
+ }
42
+
43
+ .month h1 {
44
+ font-size : 30px ;
45
+ font-weight : 400 ;
46
+ text-transform : uppercase;
47
+ letter-spacing : 2px ;
48
+ margin-bottom : 1px ;
49
+ }
50
+
51
+ .month p {
52
+ font-size : 16px ;
53
+
54
+ }
55
+
56
+ .weekdays {
57
+ width : 100% ;
58
+ height : 50px ;
59
+ display : flex;
60
+ }
61
+
62
+ .weekdays div {
63
+ font-size : 15px ;
64
+ font-weight : bold;
65
+ letter-spacing : 1px ;
66
+ width : 100% ;
67
+ display : flex;
68
+ align-items : center;
69
+ justify-content : center;
70
+ }
71
+
72
+ .days {
73
+ width : 100% ;
74
+ display : flex;
75
+ flex-wrap : wrap;
76
+ padding : 2px ;
77
+ }
78
+
79
+ .days div {
80
+ font-size : 14px ;
81
+ margin : 3px ;
82
+ width : 57.5px ;
83
+ height : 50px ;
84
+ display : flex;
85
+ justify-content : center;
86
+ align-items : center;
87
+ }
88
+
89
+ .days div : hover : not (.empty ) {
90
+ border : 2px solid gray;
91
+ cursor : pointer;
92
+ }
93
+
94
+ .today {
95
+ background-color : lightseagreen;
96
+
97
+ }
You can’t perform that action at this time.
0 commit comments