Czas na główne zadanie modułu! Jak Mohamed mówi: "Prawdziwy architekt potrafi zbudować pełną świątynię, łącząc wszystkie poznane techniki." W tym zadaniu stworzysz pełną stronę internetową z nagłówkiem, nawigacją, główną sekcją i stopką - wszystko zbudowane za pomocą Flexboxa. Struktura strony będzie responsywna i elastyczna, jak plan idealnej egipskiej świątyni.
Utwórz nowy plik HTML i dodaj podstawową strukturę dokumentu HTML. Dodaj elementy
<header>, <nav>, <main> i <footer>, aby utworzyć sekcje strony.1<!DOCTYPE html>
2<html lang="pl">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <link rel="stylesheet" href="styles.css"> <!-- Podłącz plik CSS -->
7 <title>Moja Strona WWW</title>
8</head>
9<body>
10 <header class="header">
11 <h1>Moja Strona WWW</h1>
12 <nav class="nav">
13 <ul>
14 <li><a href="#">Strona główna</a></li>
15 <li><a href="#">O nas</a></li>
16 <li><a href="#">Usługi</a></li>
17 <li><a href="#">Kontakt</a></li>
18 </ul>
19 </nav>
20 </header>
21 <main class="main">
22 <section class="content">
23 <h2>Witamy na naszej stronie</h2>
24 <p>To jest przykładowy tekst w głównej sekcji strony. Możesz tu dodać więcej informacji o swojej firmie, produktach lub usługach.</p>
25 </section>
26 <aside class="sidebar">
27 <h2>Aktualności</h2>
28 <p>Najświeższe informacje o naszej firmie i branży.</p>
29 </aside>
30 </main>
31 <footer class="footer">
32 <p>© 2023 Moja Strona WWW. Wszelkie prawa zastrzeżone.</p>
33 </footer>
34</body>
35</html>Otwórz lub utwórz nowy plik CSS i zapisz go jako
styles.css.Dodaj podstawowe style dla elementów
.header, .nav, .main, .content, .sidebar i .footer.1body {
2 font-family: Arial, sans-serif;
3 margin: 0;
4 padding: 0;
5 background-color: #f0f0f0;
6}
7
8.header {
9 background-color: #333;
10 color: #fff;
11 padding: 20px;
12 text-align: center;
13}
14
15.nav ul {
16 list-style-type: none;
17 padding: 0;
18 display: flex;
19 justify-content: center;
20}
21
22.nav li {
23 margin: 0 15px;
24}
25
26.nav a {
27 color: #fff;
28 text-decoration: none;
29 font-weight: bold;
30}
31
32.main {
33 display: flex;
34 flex-wrap: wrap;
35 justify-content: space-between;
36 padding: 20px;
37 background-color: #fff;
38}
39
40.content {
41 flex: 1;
42 min-width: 60%;
43 padding: 20px;
44}
45
46.sidebar {
47 flex: 1;
48 min-width: 30%;
49 padding: 20px;
50 background-color: #f9f9f9;
51}
52
53.footer {
54 background-color: #333;
55 color: #fff;
56 text-align: center;
57 padding: 10px;
58 position: absolute;
59 bottom: 0;
60 width: 100%;
61}Aby strona była responsywna, dodaj media queries, aby dostosować układ na mniejszych ekranach.
1@media (max-width: 768px) {
2 .main {
3 flex-direction: column;
4 }
5
6 .content, .sidebar {
7 min-width: 100%;
8 margin-bottom: 20px;
9 }
10
11 .footer {
12 position: static;
13 }
14}Po wykonaniu wszystkich kroków twój plik HTML i CSS powinny wyglądać następująco:
1<!DOCTYPE html>
2<html lang="pl">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <link rel="stylesheet" href="styles.css"> <!-- Podłącz plik CSS -->
7 <title>Moja Strona WWW</title>
8</head>
9<body>
10 <header class="header">
11 <h1>Moja Strona WWW</h1>
12 <nav class="nav">
13 <ul>
14 <li><a href="#">Strona główna</a></li>
15 <li><a href="#">O nas</a></li>
16 <li><a href="#">Usługi</a></li>
17 <li><a href="#">Kontakt</a></li>
18 </ul>
19 </nav>
20 </header>
21 <main class="main">
22 <section class="content">
23 <h2>Witamy na naszej stronie</h2>
24 <p>To jest przykładowy tekst w głównej sekcji strony. Możesz tu dodać więcej informacji o swojej firmie, produktach lub usługach.</p>
25 </section>
26 <aside class="sidebar">
27 <h2>Aktualności</h2>
28 <p>Najświeższe informacje o naszej firmie i branży.</p>
29 </aside>
30 </main>
31 <footer class="footer">
32 <p>© 2023 Moja Strona WWW. Wszelkie prawa zastrzeżone.</p>
33 </footer>
34</body>
35</html>1body {
2 font-family: Arial, sans-serif;
3 margin: 0;
4 padding: 0;
5 background-color: #f0f0f0;
6}
7
8.header {
9 background-color: #333;
10 color: #fff;
11 padding: 20px;
12 text-align: center;
13}
14
15.nav ul {
16 list-style-type: none;
17 padding: 0;
18 display: flex;
19 justify-content: center;
20}
21
22.nav li {
23 margin: 0 15px;
24}
25
26.nav a {
27 color: #fff;
28 text-decoration: none;
29 font-weight: bold;
30}
31
32.main {
33 display: flex;
34 flex-wrap: wrap;
35 justify-content: space-between;
36 padding: 20px;
37 background-color: #fff;
38}
39
40.content {
41 flex: 1;
42 min-width: 60%;
43 padding: 20px;
44}
45
46.sidebar {
47 flex: 1;
48 min-width: 30%;
49 padding: 20px;
50 background-color: #f9f9f9;
51}
52
53.footer {
54 background-color: #333;
55 color: #fff;
56 text-align: center;
57 padding: 10px;
58 position: absolute;
59 bottom: 0;
60 width: 100%;
61}
62
63@media (max-width: 768px) {
64 .main {
65 flex-direction: column;
66 }
67
68 .content, .sidebar {
69 min-width: 100%;
70 margin-bottom: 20px;
71 }
72
73 .footer {
74 position: static;
75 }
76}W tym module poznałeś kompletny zestaw narzędzi Flexbox:
display: flex - aktywacja Flexboxa na kontenerzeflex-direction - kierunek osi głównej (row, column, row-reverse, column-reverse)justify-content - rozmieszczanie na osi głównejalign-items - wyrównywanie na osi poprzecznejflex-wrap - zawijanie elementów do nowych liniigap - odstępy między elementamiflex-grow, flex-shrink, flex-basis - kontrola rozmiaru elementóworder - zmiana kolejności wizualnejalign-self - indywidualne wyrównanie elementuFlexbox to potężne narzędzie, które pozwala tworzyć elastyczne layouty bez konieczności używania float, position czy skomplikowanych hacków. Jak mawiają architekci piramid: "Elastyczność w planowaniu to klucz do trwałej konstrukcji!"
Stwórz swoją stronę w edytorze poniżej: