22 – Zadanie: Zaawansowany Portal Informacyjny „Global Rights Watch”
Zadanie: Zaawansowany Portal Informacyjny „Global Rights Watch”
1. Struktura HTML (index.html):
Wykonaj strukturę strony z zachowaniem semantyki HTML5:
-
Nagłówek: Zawiera logo (tekstowe) oraz menu typu
flex, które „przykleja się” do góry strony podczas przewijania (sticky). -
Sekcja Hero: Duży blok z obrazem w tle (CSS), na którym wyśrodkowany jest napis: „75 lat Powszechnej Deklaracji Praw Człowieka”.
-
Układ główny (Trzy kolumny):
-
Lewa (20%): Podmenu z linkami, które po najechaniu myszką zmieniają kolor tła i przesuwają się o 5px w prawo (animacja
transition). -
Środek (55%): Artykuł z zagnieżdżoną listą definicji (
<dl>,<dt>,<dd>) dotyczącą generacji praw człowieka. -
Prawa (25%): Karta „Statystyki ochrony” z wykorzystaniem pseudoelementów
::beforedo dodania ikon przy nagłówkach.
-
-
Formularz zgłoszeniowy: Umieszczony pod artykułem. Musi zawierać:
-
Grupowanie pól (
fieldset) z legendą. -
Pole typu
emailitelz odpowiednimi wzorcamipattern(regEx). -
Listę rozwijaną (
select) z kategoriami naruszeń.
-
-
Stopka: Trzy kolumny z linkami, wyrównane za pomocą CSS Grid.
2. Stylizacja CSS (styl.css):
Zastosuj poniższe wytyczne, aby uzyskać profesjonalny wygląd:
-
Zmienne CSS: Zdefiniuj w
:rootkolory:--primary: #1a2a6c,--secondary: #b21f1f,--accent: #fdbb2d. -
Responsywność (Media Queries):
-
Dla ekranów poniżej 800px: układ trzech kolumn zmienia się w jedną (kolumna pod kolumną).
-
Dla ekranów poniżej 480px: menu nawigacyjne zmienia orientację na pionową.
-
-
Selektory zaawansowane:
-
Ustyluj co drugi wiersz tabeli, ale tylko wewnątrz sekcji głównej.
-
Użyj
:not(:last-child)dla elementów listy menu, aby dodać im margines dolny (z wyjątkiem ostatniego).
-
-
Efekty:
-
Nagłówki sekcji mają mieć cień tekstu (
text-shadow). -
Przyciski formularza mają mieć gradient liniowy zgodny ze zmiennymi i zaokrąglone rogi (border-radius).
-
:root {
–primary: #1a2a6c;
–secondary: #b21f1f;
–accent: #fdbb2d;
–font-main: 'Segoe UI’, Tahoma, Geneva, Verdana, sans-serif;
}
/* Zaawansowany układ Grid dla stopki */
footer {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
background: var(–primary);
color: white;
padding: 40px;
}
/* Efekt Sticky Menu */
nav {
position: sticky;
top: 0;
z-index: 1000;
background: white;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
/* Animacja dla linków bocznych */
.side-menu a {
display: block;
padding: 10px;
transition: all 0.3s ease;
border-left: 3px solid transparent;
}
.side-menu a:hover {
padding-left: 15px;
border-left: 3px solid var(–secondary);
background: #fdf2f2;
}
/* Responsywność */
@media (max-width: 800px) {
#kontener-glowny {
display: block; /* Zamiana flexa na blok */
}
#lewy, #glowny, #prawy {
width: 100%;
float: none;
}
}


