Krok 10: tytuł z miesiącem i rokiem
Kalendarz na stronie: HTML składany w napisie - Kalendarz w JavaScript krok po kroku (HTML/CSS/JS)
Nad nagłówkiem szeroki kwadrat `month-year` z nazwą miesiąca z tablicy `MONTHS`. Ma szerokość siedmiu kwadratów razem z odstępami, a nagłówek dni dostaje `clear` w pierwszym polu, bo zaczyna się teraz w nowym wierszu.
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>Kalendarz</title>
<style>
body { font-family: sans-serif; max-width: 36em; line-height: 1.4; }
input, select, button, textarea { font: inherit; padding: 0.2em 0.4em; }
table { border-collapse: collapse; }
th, td { border: 1px solid #94a3b8; padding: 0.2em 0.6em; }
#calendar div { float: left; width: 40px; height: 40px; margin: 3px; line-height: 40px;
text-align: center; background: lightgrey; }
#calendar .clear { clear: both; }
#calendar .day-name { background: darkgrey; color: white; }
#calendar .saturday { background: lightblue; color: white; }
#calendar .sunday { background: steelblue; color: white; }
#calendar .none { background: white; }
#calendar .month-year { width: 316px; background: darkgrey; color: white; }
</style>
</head>
<body>
<div id="calendar"></div>
<script>
const MONTHS = ['styczeń', 'luty', 'marzec', 'kwiecień', 'maj', 'czerwiec',
'lipiec', 'sierpień', 'wrzesień', 'październik', 'listopad', 'grudzień'];
const DAY_NAMES = ['Pn', 'Wt', 'Śr', 'Cz', 'Pt', 'So', 'Nd'];
const year = 2026;
const month = 11; // 1 = styczeń, 12 = grudzień
const firstDay = (new Date(year, month - 1, 1).getDay() + 6) % 7;
const days = new Date(year, month, 0).getDate();
let html = `<div class="month-year">${MONTHS[month - 1]} ${year}</div>`;
DAY_NAMES.forEach((name, k) => {
const weekend = k === 5 ? ' saturday' : k === 6 ? ' sunday' : '';
html += `<div class="day-name${weekend}${k === 0 ? ' clear' : ''}">${name}</div>`;
});
for (let k = 0; k < firstDay; k++) {
html += `<div class="none${k === 0 ? ' clear' : ''}"></div>`;
}
for (let i = 1; i <= days; i++) {
const p = firstDay + i;
const classes = [];
if (p % 7 === 1) classes.push('clear');
if (p % 7 === 6) classes.push('saturday');
if (p % 7 === 0) classes.push('sunday');
html += `<div class="${classes.join(' ')}">${i}</div>`;
}
document.getElementById('calendar').innerHTML = html;
</script>
</body>
</html>Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Kalendarz w JavaScript krok po kroku·Zaloguj się, aby zapisać postęp na koncie.