How to create: CSS Calendar

Learn how to use CSS to create a calendar.

  • August
    2025
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • Su
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

Try It Yourself

How to create a calendar layout

Step 1 - Add HTML:

<div class="month">
  <ul>
    <li class="prev">❮</li>
    <li class="next">❯</li>
    <li>August<br><span style="font-size:18px">2021</span></li>
  </ul>
</div>
<ul class="weekdays">
  <li>Mo</li>
  <li>Tu</li>
  <li>We</li>
  <li>Th</li>
  <li>Fr</li>
  <li>Sa</li>
  <li>Su</li>
</ul>
<ul class="days">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
  <li>9</li>
  <li><span class="active">10</span></li>
  <li>11</li>
  ...etc
</ul>

Step 2 - Add CSS:

ul {list-style-type: none;}
body {font-family: Verdana, sans-serif;}
/* Month title */
.month {
  padding: 70px 25px;
  width: 100%;
  background: #1abc9c;
  text-align: center;
}
/* Month list */
.month ul {
  margin: 0;
  padding: 0;
}
.month ul li {
  color: white;
  font-size: 20px;
  text-transform: uppercase;
  letter-spacing: 3px;
}
/* Previous month button within the month title */
.month .prev {
  float: left;
  padding-top: 10px;
}
/* Next month button */
.month .next {
  float: right;
  padding-top: 10px;
}
/* Working days (Monday to Sunday) */
.weekdays {
  margin: 0;
  padding: 10px 0;
  background-color:#ddd;
}
.weekdays li {
  display: inline-block;
  width: 13.6%;
  color: #666;
  text-align: center;
}
/* Days (1-31) */
.days {
  padding: 10px 0;
  background: #eee;
  margin: 0;
}
.days li {
  list-style-type: none;
  display: inline-block;
  width: 13.6%;
  text-align: center;
  margin-bottom: 5px;
  font-size:12px;
  color: #777;
}
/* Highlight the "current" day */
.days li .active {
  padding: 5px;
  background: #1abc9c;
  color: white !important
}

Try It Yourself