Kurs HTML i CSS · Moduł 5: Responsywność
Media Queries
W tej lekcji3
Media Queries to potężne narzędzie w CSS, które pozwala na stosowanie różnych stylów w zależności od charakterystyk urządzenia, takich jak rozdzielczość, orientacja ekranu, gęstość pikseli i inne. Dzięki Media Queries projektanci mogą tworzyć responsywne strony internetowe, które dostosowują się do różnych urządzeń i warunków wyświetlania.
Podstawowe Zastosowania
Szerokość i Wysokość Ekranu
Media Queries pozwalają na stosowanie różnych stylów w zależności od szerokości i wysokości ekranu.
1/* Style dla ekranów o minimalnej szerokości 600px */
2@media (min-width: 600px) {
3 .container {
4 width: 80%;
5 }
6}
7
8/* Style dla ekranów o maksymalnej wysokości 800px */
9@media (max-height: 800px) {
10 .footer {
11 display: none;
12 }
13}Orientacja Ekranu
Można także wykorzystać Media Queries do detekcji orientacji ekranu (pionowej lub poziomej).
1/* Style dla ekranów w orientacji poziomej */
2@media (orientation: landscape) {
3 .landscape-layout {
4 display: flex;
5 }
6}Typ Urządzenia
Media Queries pozwalają na stylizację w zależności od typu urządzenia, na przykład drukarki czy projektora.
1/* Style dla wydruku */
2@media print {
3 body {
4 font-size: 12pt;
5 color: black;
6 }
7}Zaawansowane Techniki
Łączenie Warunków
Możesz łączyć różne warunki w jednym zapytaniu, stosując operatory logiczne takie jak and, not, i only.
1/* Style dla ekranów o minimalnej szerokości 800px i maksymalnej gęstości pikseli 2 */
2@media (min-width: 800px) and (max-resolution: 2dppx) {
3 .header {
4 background-color: blue;
5 }
6}Użycie Zmiennej CSS
Można także wykorzystać Media Queries razem z zmiennymi CSS, aby stworzyć bardziej dynamiczny i elastyczny kod.
1:root {
2 --main-color: red;
3}
4
5@media (min-width: 800px) {
6 :root {
7 --main-color: blue;
8 }
9}
10
11.header {
12 background-color: var(--main-color);
13}Media Queries są kluczowym elementem responsywnego projektowania stron internetowych, pozwalając na precyzyjną kontrolę nad wyglądem strony w różnych sytuacjach. Od prostych zastosowań, takich jak dostosowanie szerokości ekranu, po zaawansowane techniki z wykorzystaniem zmiennych CSS, Media Queries oferują szeroki wachlarz możliwości dla nowoczesnych projektantów stron. Opanowanie tej techniki umożliwi tworzenie stron, które są nie tylko atrakcyjne wizualnie, ale także użyteczne i dostępne na różnych urządzeniach i platformach.
Zadanie: Tworzenie Responsywnego Układu
Cel
Stworzenie responsywnego układu strony, który dostosowuje się do różnych rozmiarów ekranu przy użyciu Media Queries oraz jednostek vw, vh, em i rem.
Kroki do Wykonania
Struktura HTML: Utwórz nowy plik HTML i dodaj podstawową strukturę dokumentu.
1<!DOCTYPE html> 2<html lang="en"> 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"> 7 <title>Responsive Layout</title> 8</head> 9<body> 10 <header class="header"> 11 <h1>Responsive Design</h1> 12 </header> 13 <main class="main-content"> 14 <section class="section"> 15 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> 16 </section> 17 <section class="section"> 18 <p>Curabitur pretium tincidunt lacus. Nulla gravida orci a odio.</p> 19 </section> 20 </main> 21 <footer class="footer"> 22 <p>© 2024 Responsive Design</p> 23 </footer> 24</body> 25</html>Podstawowy Styl CSS: Dodaj stylizację w pliku
styles.css.1body { 2 font-family: Arial, sans-serif; 3 margin: 0; 4 padding: 0; 5} 6 7.header, .footer { 8 background-color: #333; 9 color: #fff; 10 text-align: center; 11 padding: 1rem 0; 12} 13 14.main-content { 15 padding: 1rem; 16} 17 18.section { 19 margin-bottom: 1rem; 20 padding: 1rem; 21 background-color: #f4f4f4; 22} 23 24p { 25 font-size: 1rem; /* 1rem = 16px */ 26 line-height: 1.5; 27} 28 29h1 { 30 font-size: 2rem; /* 2 * 16px = 32px */ 31}Responsywne Jednostki i Media Queries: Dodaj media queries i użyj jednostek vw, vh, em i rem.
1/* Styl dla urządzeń o szerokości minimum 600px */ 2@media (min-width: 600px) { 3 .main-content { 4 padding: 2rem; 5 } 6 7 .section { 8 margin-bottom: 2rem; 9 padding: 2rem; 10 } 11 12 p { 13 font-size: 1.2rem; /* 1.2 * 16px = 19.2px */ 14 } 15 16 h1 { 17 font-size: 3rem; /* 3 * 16px = 48px */ 18 } 19} 20 21/* Styl dla urządzeń o szerokości minimum 800px */ 22@media (min-width: 800px) { 23 .header, .footer { 24 padding: 2rem 0; 25 } 26 27 .section { 28 display: flex; 29 justify-content: space-between; 30 } 31 32 .section p { 33 font-size: 1.5rem; /* 1.5 * 16px = 24px */ 34 } 35} 36 37/* Styl dla urządzeń o szerokości minimum 1200px */ 38@media (min-width: 1200px) { 39 .header h1 { 40 font-size: 5vw; /* 5% szerokości okna przeglądarki */ 41 } 42 43 .section { 44 margin-bottom: 3rem; 45 padding: 3rem; 46 } 47 48 .section p { 49 font-size: 2rem; /* 2 * 16px = 32px */ 50 } 51}Testowanie: Przetestuj stronę w różnych rozmiarach okna przeglądarki, aby upewnić się, że układ odpowiednio się dostosowuje.
Podsumowanie
Media Queries i responsywne jednostki (vw, vh, em, rem) są kluczowe dla tworzenia nowoczesnych, responsywnych stron internetowych. Dzięki nim możemy dostosowywać układ, rozmiary tekstu i inne elementy w zależności od wielkości ekranu i innych charakterystyk urządzeń. Opanowanie tych technik pozwala na tworzenie bardziej elastycznych, użytecznych i estetycznych projektów internetowych.
Widzisz błąd w tej lekcji?
Sprawdź się
Odpowiedz na pytania z tej lekcji. Wybierz odpowiedź, a od razu zobaczysz, czy jest poprawna.
1. Jak sprawdzić orientację urządzenia w media query?
2. Jak zdefiniować zakres szerokości w media query (np. 600px-1024px)?
To 2 z 3 pytań do tej lekcji. Pozostałe rozwiążesz w grze.
Zadania praktyczne w grze
- Klikanie w kolejności
Ułóż elementy aby stworzyć media query dla orientacji poziomej:
- Układanie w poziomie
Ułóż składnię media query z zakresem dla tabletu:
- Klikanie w kolejności
Ułóż kod CSS ukrywający sidebar na urządzeniach mobilnych:
- Układanie w pionie
Ułóż kod responsywnej nawigacji (mobile: pionowa → desktop: pozioma):