Implementacja HTML/CSS, responsive design, narzedzia wspolpracy, Git
ð Podstawa programowa: II.3f+IV.1Ta lekcja jest glownie praktyczna - kazdy zespol realizuje swoj plan z poprzedniej lekcji. Jednak zanim przejdziecie do kodowania, warto poznac kilka kluczowych technik CSS, ktore pomoga stworzyc nowoczesna i responsywna strone internetowa. Ponizej znajdziecie gotowe wzorce kodu, ktore mozecie dostosowac do swoich potrzeb.
Pamietajcie o zasadzie mobile first - zaczynajcie od stylow dla malych ekranow (telefonow), a nastepnie dodawajcie style dla wiekszych ekranow za pomoca media queries. To podejscie jest standardem w branzy i ulatwia tworzenie responsywnych stron.
Flexbox to potezne narzedzie CSS do tworzenia elastycznych ukladow. Pozwala latwo centrowac elementy, rozkladac je rownomiernie i zmieniac kolejnosc wyswietlania. Jest idealny do nawigacji, kart, galerii i wielu innych komponentow.
/* Nawigacja z Flexbox */
nav {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 2rem;
background: #1e293b;
color: white;
}
nav ul {
display: flex;
list-style: none;
gap: 2rem;
}
nav a {
color: white;
text-decoration: none;
transition: color 0.3s;
}
nav a:hover {
color: #60a5fa;
}
CSS Grid to system ukladow oparty na siatce, idealny do tworzenia wielokolumnowych ukladow. W przeciwienstwie do Flexboxa, ktory dziala w jednym wymiarze (wiersz lub kolumna), Grid pozwala kontrolowac uklad w dwoch wymiarach jednoczesnie. Jest szczegolnie przydatny do tworzenia siatek kart, galerii zdjec i zlozonych layoutow.
/* Siatka kart z CSS Grid */
.cards-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
padding: 2rem;
}
.card {
background: white;
border-radius: 12px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
overflow: hidden;
transition: transform 0.3s;
}
.card:hover {
transform: translateY(-5px);
}
.card img {
width: 100%;
height: 200px;
object-fit: cover;
}
Responsywnosc oznacza, ze strona wyglada dobrze na kazdym urzadzeniu - od telefonu po duzy monitor. Osiagamy ja za pomoca media queries, ktore pozwalaja definiowac rozne style dla roznych szerokosc ekranu. Wspomniany wczesniej podejscie mobile-first oznacza, ze domyslne style sa dla malych ekranow, a media queries dodaja style dla wiekszych.
/* Mobile First - domyslnie style mobilne */
.container {
width: 100%;
padding: 0 1rem;
}
/* Tablet (768px+) */
@media (min-width: 768px) {
.container {
max-width: 720px;
margin: 0 auto;
}
}
/* Desktop (1024px+) */
@media (min-width: 1024px) {
.container {
max-width: 1200px;
}
}
/* Hamburger menu na mobile */
@media (max-width: 768px) {
nav ul {
display: none;
flex-direction: column;
position: absolute;
top: 60px;
left: 0;
right: 0;
background: #1e293b;
padding: 1rem;
}
nav ul.active {
display: flex;
}
}
Git to system kontroli wersji, ktory pozwala sledzic zmiany w kodzie, cofac sie do wczesniejszych wersji i wspolpracowac z innymi programistami. Jest to najwazniejsze narzedzie wspolpracy w swiecie IT. Nawet jesli w naszym projekcie szkolnym nie uzyjemy Git w pelni, warto poznac jego podstawy.
Glowne koncepcje Git: repozytorium (folder z kodem sledzonym przez Git), commit (zapisanie zmian), branch (galaz - niezalezna linia rozwoju), merge (polaczenie galezi). Na co dzien programisci uzywaja platformy GitHub do hostowania repozytoriow i wspolpracy.
# Podstawowe komendy Git:
git init # Utworzenie nowego repozytorium
git add . # Dodanie zmian do poczekalni
git commit -m "Opis zmian" # Zapisanie zmian
git push # Wyslanie zmian na serwer
git pull # Pobranie zmian z serwera
git status # Sprawdzenie stanu repozytorium
Zaimplementuj strone glowna (index.html) zgodnie z wireframem z poprzedniej lekcji. Strona powinna zawierac: nawigacje, sekcje hero z tytulem i opisem, co najmniej 3 sekcje z trescia oraz stopke. Uzyj semantycznego HTML (header, nav, main, section, footer).
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ByteClub - Kolo Informatyczne</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<header>
<nav>
<div class="logo">ByteClub</div>
<ul>
<li><a href="index.html">Strona glowna</a></li>
<li><a href="onas.html">O nas</a></li>
<li><a href="projekty.html">Projekty</a></li>
<li><a href="kontakt.html">Kontakt</a></li>
</ul>
</nav>
</header>
<main>
<section class="hero">
<h1>Witaj w ByteClub!</h1>
<p>Kolo informatyczne Twojego liceum</p>
</section>
<section class="features">...</section>
</main>
<footer>...</footer>
</body>
</html>
Stworzcie arkusz stylow CSS dla projektu. Zdefiniujcie: palate kolorow (zmienne CSS), typografie (czcionki z Google Fonts), nawigacje z Flexbox, responsywny uklad z Grid lub Flexbox. Strona musi wygladac dobrze na telefonie i komputerze.
Wymien sie kodem z inna osoba z zespolu. Przejrzyj jej/jego kod HTML i CSS. Sprawdz: czy HTML jest semantyczny, czy nie ma bledow, czy style sa czytelne. Napisz 3 pozytywne komentarze i 2 sugestie poprawy.
Zaimplementuj responsywne menu "hamburger" - na duzych ekranach nawigacja jest widoczna normalnie, a na malych ekranach chowa sie za ikona trzech kresek. Uzyj CSS media queries i prostego JavaScriptu.
/* HTML */
<button class="hamburger" onclick="toggleMenu()">☰</button>
/* CSS */
.hamburger { display: none; font-size: 1.5rem; background: none;
border: none; color: white; cursor: pointer; }
@media (max-width: 768px) {
.hamburger { display: block; }
nav ul { display: none; }
nav ul.active { display: flex; flex-direction: column; }
}
/* JavaScript */
function toggleMenu() {
document.querySelector('nav ul').classList.toggle('active');
}