Bootstrap Calendar Template
by Glynne Turner
HTML
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.min.css">
<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="container py-5">
<!-- Calendar -->
<div class="calendar shadow bg-white p-5">
<div class="d-flex align-items-center"><i class="fa fa-calendar fa-3x mr-3"></i>
<h2 class="month font-weight-bold mb-0 text-uppercase">December 2019</h2>
</div>
<p class="font-italic text-muted mb-5">No events for this day.</p>
<ol class="day-names list-unstyled">
<li class="font-weight-bold text-uppercase">Sun</li>
<li class="font-weight-bold text-uppercase">Mon</li>
<li class="font-weight-bold text-uppercase">Tue</li>
<li class="font-weight-bold text-uppercase">Wed</li>
<li class="font-weight-bold text-uppercase">Thu</li>
<li class="font-weight-bold text-uppercase">Fri</li>
<li class="font-weight-bold text-uppercase">Sat</li>
</ol>
<ol class="days list-unstyled">
<li>
<div class="date">1</div>
<div class="event bg-success">Event with Long Name</div>
</li>
<li>
<div class="date">2</div>
</li>
<li>
<div class="date">3</div>
</li>
<li>
<div class="date">4</div>
</li>
<li>
<div class="date">5</div>
</li>
<li>
<div class="date">6</div>
</li>
<li>
<div class="date">7</div>
</li>
<li>
<div class="date">8</div>
</li>
<li>
<div class="date">9</div>
</li>
<li>
<div class="date">10</div>
</li>
<li>
<div class="date">11</div>
</li>
<li>
<div class="date">12</div>
...
CSS
/*
*
* ==========================================
* CUSTOM UTIL CLASSES
* ==========================================
*
*/
.clearfix::after,
.calendar ol::after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
/* ================
Calendar Styling */
.calendar {
border-radius: 10px;
}
.month {
font-size: 2rem;
}
@media (min-width: 992px) {
.month {
font-size: 3.5rem;
}
}
.calendar ol li {
float: left;
width: 14.28571%;
}
.calendar .day-names {
border-bottom: 1px solid #eee;
}
.calendar .day-names li {
text-transform: uppercase;
margin-bottom: 0.5rem;
}
.calendar .days li {
border-bottom: 1px solid #eee;
min-height: 8rem;
}
.calendar .days li .date {
margin: 0.5rem 0;
}
.calendar .days li .event {
font-size: 0.75rem;
padding: 0.4rem;
color: white;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
border-radius: 4rem;
margin-bottom: 1px;
}
.calendar .days li .event.span-2 {
width: 200%;
}
.calendar .days li .event.begin {
border-radius: 1rem 0 0 1rem;
}
.calendar .days li .event.end {
border-radius: 0 1rem 1rem 0;
}
.calendar .days li .event.clear {
background: none;
}
.calendar .days li:nth-child(n+29) {
border-bottom: none;
}
.calendar .days li.outside .date {
color: #ddd;
}
/*
*
* ==========================================
* FOR DEMO PURPOSES
* ==========================================
*
*/
body {
min-height: 100vh;
background-color: #3ca55c;
background-image: linear-gradient(147deg, #3ca55c 0%, #b5ac49 100%);
}