KURS HTML5, CSS3 I NOWOCZESNY JAVASCRIPT (ES6)
Intensywny, 24-godzinny kurs tworzenia nowoczesnych stron i aplikacji internetowych. Uczestnicy poznają aktualne standardy HTML5, stylowanie interfejsów w CSS3 oraz praktyczne zastosowanie JavaScript i ES6. Szkolenie łączy teorię z warsztatami, dzięki czemu każdy moduł kończy się praktycznym projektem lub ćwiczeniami.
Kurs przygotowuje do samodzielnego tworzenia semantycznych stron, interaktywnych komponentów oraz prostych aplikacji webowych działających również w trybie offline.
Moduł 2 — Architektura HTML5 i semantyka (3 godz.)
1. Nowe tagi semantyczne HTML5
- Omówienie znaczenia tagów:
section,article,nav,aside,header,footer. - Poprawne stosowanie semantyki w strukturze strony.
- Korzyści dla SEO i dostępności (Accessibility).
2. Formatowanie struktury przy użyciu CSS3
- Łączenie stylów CSS3 z elementami HTML5.
- Użycie flexbox i grid do układu semantycznych sekcji.
- Kolory, marginesy, paddingi i responsywność.
3. Integracja HTML5 z JavaScript
- Podstawowe manipulacje DOM w strukturze HTML5.
- Dodawanie interaktywności do semantycznych sekcji.
- Przykłady dynamicznej zmiany treści w
articleiaside.
4. Budowa prostej aplikacji opartej na HTML5
- Planowanie struktury dokumentu i sekcji semantycznych.
- Tworzenie interfejsu z nagłówkiem, nawigacją, treścią i stopką.
- Łączenie HTML, CSS i prostego JavaScriptu w praktyce.
Moduł 2 — Szczegółowa lekcja HTML5
1. Nowe tagi semantyczne HTML5
🌐 HTML5 wprowadza znaczniki semantyczne, które pozwalają lepiej zorganizować stronę. Semantyka oznacza, że kod HTML nie jest tylko wizualnym układem, ale też informacją dla przeglądarek i wyszukiwarek, co oznacza każdy element strony.
Oto główne nowe tagi semantyczne i ich zastosowanie:
<header>– nagłówek strony lub sekcji, zwykle zawiera tytuł, logo, menu główne.<footer>– stopka strony lub sekcji, zawiera informacje o prawach autorskich, linki kontaktowe lub dodatkowe menu.<nav>– sekcja nawigacyjna, czyli menu strony z odnośnikami do innych podstron.<section>– wydzielona część strony o spójnej tematyce, np. sekcja „Aktualności” lub „O nas”.<article>– samodzielna jednostka treści, np. wpis na blogu, artykuł, news.<aside>– treść dodatkowa, poboczna, np. panel boczny, reklama, cytat lub linki powiązane.
Przykład użycia semantycznych tagów HTML5:
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Strona z semantycznymi tagami</title>
</head>
<body>
<header>
<h1>Moja strona HTML5</h1>
<nav>
<ul>
<li><a href="#">Strona główna</a></li>
<li><a href="#">O nas</a></li>
<li><a href="#">Kontakt</a></li>
</ul>
</nav>
</header>
<main>
<section>
<h2>Aktualności</h2>
<article>
<h3>Nowy kurs HTML5</h3>
<p>Rozpoczynamy kurs HTML5 dla początkujących. Dowiesz się, jak używać semantycznych tagów.</p>
</article>
<article>
<h3>Aktualizacja strony</h3>
<p>Strona została zaktualizowana o nowe przykłady kodu i ćwiczenia.</p>
</article>
</section>
<aside>
<h4>Polecane linki</h4>
<ul>
<li><a href="#">Dokumentacja HTML5</a></li>
<li><a href="#">CSS3 tutorial</a></li>
</ul>
</aside>
</main>
<footer>
<p>© 2026 Moja strona HTML5. Wszystkie prawa zastrzeżone.</p>
</footer>
</body>
</html>
💡 Wskazówki dla początkujących:
- Używaj <header> i <footer> raz na stronie głównej, ale możesz też powtarzać je w sekcjach.
- <section> grupuje tematycznie treść, <article> to pojedynczy element informacji.
- <aside> nigdy nie powinno zawierać najważniejszej treści strony – jest uzupełnieniem.
- <nav> pomaga użytkownikowi i robotom wyszukiwarek zrozumieć strukturę nawigacyjną strony.
- Semantyka poprawia dostępność strony dla czytników ekranowych i SEO.
2. Formatowanie struktury przy użyciu CSS3
🎨 CSS3 pozwala wizualnie uporządkować semantyczne sekcje HTML5. Dzięki nowoczesnym technikom, takim jak Flexbox i Grid, możemy tworzyć responsywne układy, w których nagłówki, sekcje, artykuły i stopki mają logiczne miejsce, a strona wygląda estetycznie na różnych urządzeniach.
Ważne aspekty formatowania CSS3 dla semantycznej strony:
- Kolory i typografia: nadajemy barwy nagłówkom, sekcjom i stopce, stosujemy czytelne fonty i rozmiary tekstu.
- Marginesy i paddingi: kontrolują odstępy między elementami i wewnątrz nich, co poprawia czytelność.
- Flexbox: pozwala łatwo układać elementy w rzędzie lub kolumnie, a także wyrównywać je do środka lub po bokach.
- Grid: umożliwia tworzenie bardziej złożonych układów siatki, dzieląc stronę na wiersze i kolumny.
- Responsywność: media queries pozwalają dostosować wygląd strony do różnych rozdzielczości ekranu (telefony, tablety, komputery).
Przykład prostego układu strony z Flexbox:
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Układ Flexbox</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
header, footer {
background-color: #0ea5a3; /* kolor nagłówka i stopki */
color: white;
padding: 20px;
text-align: center;
}
main {
display: flex; /* Flexbox dla głównej treści */
flex-wrap: wrap; /* pozwala elementom zawijać się w mniejszych ekranach */
gap: 20px; /* odstęp między elementami */
padding: 20px;
}
section {
flex: 2; /* większa część głównej treści */
background-color: #ecfeff;
padding: 15px;
}
aside {
flex: 1; /* panel boczny */
background-color: #fef3c7;
padding: 15px;
}
</style>
</head>
<body>
<header>
<h1>Moja strona HTML5 z Flexbox</h1>
</header>
<main>
<section>
<h2>Sekcja główna</h2>
<p>Tutaj znajduje się najważniejsza treść strony.</p>
</section>
<aside>
<h3>Panel boczny</h3>
<p>Tutaj można umieścić dodatkowe informacje lub linki.</p>
</aside>
</main>
<footer>
<p>© 2026 Moja strona HTML5. Wszystkie prawa zastrzeżone.</p>
</footer>
</body>
</html>
Przykład prostego układu strony z CSS Grid:
<style>
.grid-container {
display: grid;
grid-template-areas:
"header header"
"nav main"
"footer footer";
grid-gap: 10px;
padding: 10px;
}
header { grid-area: header; background: #0ea5a3; color: white; padding: 20px; text-align: center; }
nav { grid-area: nav; background: #fef3c7; padding: 15px; }
main { grid-area: main; background: #ecfeff; padding: 15px; }
footer { grid-area: footer; background: #0ea5a3; color: white; padding: 20px; text-align: center; }
</style>
<div class="grid-container">
<header>Nagłówek</header>
<nav>Menu</nav>
<main>Główna treść</main>
<footer>Stopka</footer>
</div>
💡 Wskazówki dla początkujących:
- Flexbox najlepiej używać do układu w jednym wymiarze (rzędy lub kolumny).
- Grid sprawdza się przy bardziej złożonych siatkach dwuwymiarowych.
- Dodając gap, padding i margin, utrzymujesz estetyczny odstęp między sekcjami.
- Testuj responsywność przy różnych szerokościach okna przeglądarki.
- Kolory i kontrasty pomagają odróżnić sekcje wizualnie, co jest ważne dla użytkowników i początkujących programistów.
3. Integracja HTML5 z JavaScript
⚡ JavaScript pozwala na interakcję z elementami HTML5. Dzięki niemu możesz dynamicznie zmieniać zawartość sekcji <article> lub paneli <aside>, reagować na kliknięcia w menu <nav> i wprowadzać prostą logikę aplikacji w strukturze semantycznej.
Integracja HTML5 z JavaScript jest kluczowa, ponieważ HTML definiuje strukturę, CSS odpowiada za wygląd, a JavaScript – za interaktywność strony.
- Manipulacja treścią: zmieniamy tekst w artykułach lub panelach bocznych bez przeładowania strony.
- Obsługa zdarzeń: reagujemy na kliknięcia, najechania myszką, przesunięcia czy wciśnięcia klawiszy.
- Dynamiczne style: możemy dodawać lub usuwać klasy CSS, zmieniać kolory i układ w locie.
- Prosta logika aplikacji: np. rozwijanie menu, pokazywanie/ukrywanie sekcji, filtrowanie treści.
Przykład: zmiana treści artykułu po kliknięciu przycisku
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTML5 + JavaScript</title>
<style>
body { font-family: Arial, sans-serif; margin: 0; padding: 0; }
header, footer { background-color: #0ea5a3; color: white; padding: 20px; text-align: center; }
main { padding: 20px; }
article { background-color: #ecfeff; padding: 15px; margin-bottom: 10px; }
aside { background-color: #fef3c7; padding: 15px; margin-bottom: 10px; }
button { padding: 8px 12px; cursor: pointer; background-color: #0ea5a3; color: white; border: none; border-radius: 5px; }
</style>
</head>
<body>
<header>
<h1>Moja strona HTML5 z JavaScript</h1>
</header>
<main>
<article id="mainArticle">
<h2>Artykuł 1</h2>
<p>Kliknij przycisk, aby zmienić zawartość artykułu.</p>
</article>
<aside id="sidePanel">
<h3>Panel boczny</h3>
<p>Tu pojawi się dodatkowa informacja po kliknięciu przycisku.</p>
</aside>
<button id="changeContentBtn">Zmień treść</button>
</main>
<footer>
<p>© 2026 Moja strona HTML5. Wszystkie prawa zastrzeżone.</p>
</footer>
<script>
// Pobieramy przycisk z DOM
const button = document.getElementById('changeContentBtn');
// Pobieramy elementy, które chcemy zmienić
const article = document.getElementById('mainArticle');
const aside = document.getElementById('sidePanel');
// Funkcja zmieniająca treść
button.addEventListener('click', () => {
article.innerHTML = '<h2>Artykuł 1 (zaktualizowany)</h2><p>Treść artykułu została zmieniona dynamicznie dzięki JavaScript.</p>';
aside.innerHTML = '<h3>Panel boczny (zaktualizowany)</h3><p>Dodatkowa informacja pojawiła się po kliknięciu przycisku.</p>';
});
</script>
</body>
</html>
💡 Wskazówki dla początkujących:
- Zawsze pobieraj elementy z DOM za pomocą getElementById lub querySelector.
- Funkcje wywoływane przez zdarzenia (np. click) mogą modyfikować dowolne elementy strony.
- Możesz zmieniać nie tylko treść (innerHTML), ale też style (style.backgroundColor) czy klasy CSS (classList.add/remove).
- Testuj działanie na różnych sekcjach: article, aside, header, footer.
- To podstawowa baza dla tworzenia prostych interaktywnych aplikacji HTML5.
4. Budowa prostej aplikacji opartej na HTML5
Poniżej znajduje się przykładowy kod strony HTML5. Każdy fragment posiada komentarze wyjaśniające jego funkcję.
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Prosta aplikacja HTML5</title>
<!-- Prosty CSS do stylizacji strony -->
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Inter', sans-serif;
background-color: #f8fafc;
color: #1e293b;
padding: 20px;
}
header {
background-color: #0ea5a3;
color: white;
padding: 20px;
text-align: center;
border-radius: 10px 10px 0 0;
}
nav {
background-color: #fef3c7;
padding: 10px;
display: flex;
justify-content: center;
gap: 15px;
border-bottom: 1px solid #eef2f7;
}
nav a {
text-decoration: none;
color: #92400e;
font-weight: bold;
}
main {
background-color: white;
padding: 20px;
margin-top: 10px;
border-radius: 0 0 10px 10px;
box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
section {
margin-bottom: 20px;
}
footer {
text-align: center;
margin-top: 20px;
color: #64748b;
font-size: 0.9em;
}
button {
background-color: #0ea5a3;
color: white;
border: none;
padding: 10px 20px;
border-radius: 6px;
cursor: pointer;
font-size: 1em;
}
button:hover {
background-color: #08999b;
}
</style>
</head>
<body>
<!-- Nagłówek strony -->
<header>
<h1>Moja pierwsza aplikacja HTML5</h1>
</header>
<!-- Nawigacja -->
<nav>
<a href="#home">Strona główna</a>
<a href="#about">O mnie</a>
<a href="#contact">Kontakt</a>
</nav>
<!-- Główna treść -->
<main>
<!-- Sekcja Strona główna -->
<section id="home">
<h2>Strona główna</h2>
<p>Planowanie struktury dokumentu: nagłówek, nawigacja, treść i stopka.</p>
</section>
<!-- Sekcja O mnie -->
<section id="about">
<h2>O mnie</h2>
<p>Tworzymy interfejs użytkownika, dodając sekcje i treść w semantycznych znacznikach HTML5.</p>
</section>
<!-- Sekcja Kontakt z prostym przyciskiem -->
<section id="contact">
<h2>Kontakt</h2>
<p>Łączenie HTML, CSS i prostego JavaScriptu. Kliknij przycisk, aby zobaczyć powitanie:</p>
<button onclick="sayHello()">Powitanie</button>
<p id="greeting" style="margin-top:10px; color:#0ea5a3; font-weight:bold;"></p>
</section>
</main>
<!-- Stopka -->
<footer>
© 2026 Moja aplikacja HTML5. Wszelkie prawa zastrzeżone.
</footer>
<!-- Prosty JavaScript -->
<script>
// Funkcja wyświetlająca powitanie po kliknięciu przycisku
function sayHello() {
document.getElementById('greeting').textContent = 'Cześć! Miło Cię widzieć na stronie!';
}
</script>
</body>
</html>
Ćwiczenia praktyczne:
- Dodaj własną sekcję, np. portfolio lub galerię zdjęć.
- Zmień kolory nagłówka, stopki i przycisku.
- Dodaj kolejne przyciski z prostymi interakcjami w JavaScript.
Po ukończeniu tego modułu uczestnicy będą w stanie tworzyć strony i proste aplikacje w HTML5 z prawidłową semantyką, stosować CSS3 do layoutu i integrować elementy HTML z JavaScript.
