jQuery Mobile/Metro Calendar
A re-styled jQuery UI datepicker inline calendar for use in mobile devices. The color scheme is targetted at Metro styling.
by ducas
HTML
<input type="text" data-role="datepicker" />
CSS
.ui-datepicker-header {
border-top: 2px solid black;
margin-top: 5px;
position: relative;
height: 25px;
}
.ui-datepicker-header .ui-datepicker-title { font-weight: bold; }
.ui-datepicker-header.ui-corner-all {
-moz-border-radius: 0;
-webkit-border-radius: 0;
border-radius: 0;
}
.ui-datepicker-header .ui-icon {
background-color: transparent;
background-image: url(http://code.jquery.com/mobile/1.0b3/images/icons-18-black.png);
display: inline-block;
width: 20px;
height: 20px;
padding: 2px;
text-indent: -9999px;
}
.ui-datepicker-header a {
border: 1px solid black;
margin-top: 1px;
padding-left: 5px;
position: absolute;
z-index: 10;
}
.ui-datepicker-header .ui-datepicker-prev {
left: 0;
}
.ui-datepicker-header .ui-datepicker-prev .ui-icon {
background-position: -144px 50%;
}
.ui-datepicker-header .ui-datepicker-next {
right: 0;
}
.ui-datepicker-header .ui-datepicker-next .ui-icon {
background-position: -108px 50%;
}
.ui-datepicker-header .ui-datepicker-title {
position: absolute;
top: 3px;
margin: 0 auto;
text-align: center;
width: 100%;
}
.ui-datepicker-calendar {
border-collapse: collapse;
width: 100%;
}
.ui-datepicker-calendar th,
.ui-datepicker-calendar td {
text-align: center;
}
.ui-datepicker-calendar th {
font-size: 10px;
height: 10px;
vertical-align: bottom;
}
.ui-datepicker-calendar td {
border: 1px solid black;
height: 40px;
}
.ui-datepicker-calendar td a,
.ui-datepicker-calendar td a:active,
.ui-datepicker-calendar td a:visited,
.ui-datepicker-calendar td a:hover {
color: #2489CE;
font-weight: bold;
text-decoration: none;
}
.ui-datepicker-calendar td.ui-datepicker-today {
background: lightGray;
}
.ui-datepicker-calendar td.ui-datepicker-current-day {
background: #2489CE;
}
.ui-datepicker-calendar td.ui-datepicker-current-day a {
color: #fff;
}
JavaScript
$(function() {
$('input[data-role="datepicker"]')
.hide()
.wrap('<span class="ui-datepicker-container" />')
.after('<div class="datepicker"></div>')
.parent()
.find('div.datepicker')
.datepicker({
onSelect: function(dateText) {
$(this)
.parent('.ui-datepicker-container')
.find('input:jqmData(role="datepicker")')
.val(dateText)
.trigger('change');
}
});
});