Tworzenie galerii zdjęć na stronę internetową to coś, co wiele osób chce zrobić, ale często kończy się na szukaniu gotowych rozwiązań typu slider. A co jeśli chcesz coś bardziej minimalistycznego, przejrzystego i bez zbędnych bajerów? W tym artykule pokażę Ci krok po kroku, jak stworzyć prostą, ale efektowną galerię zdjęć – bez slidera. Nie potrzebujesz zaawansowanych umiejętności programistycznych, wystarczy podstawowa znajomość HTML, CSS i odrobina kreatywności.
Dlaczego bez slidera?
Slider, chociaż popularny, ma swoje wady.
- Ciężar strony: Slidery często ładują masę zbędnych skryptów JavaScript, co spowalnia stronę.
- Problemy UX: Użytkownicy nie zawsze wiedzą, że mogą przewijać zdjęcia, a automatyczne przewijanie potrafi irytować.
- Estetyka: Nie każdy chce, by jego galeria była dynamiczna. Czasami statyczne układy wyglądają bardziej elegancko.
Jeśli to brzmi jak coś, czego szukasz, to przejdźmy do działania!
Krok 1: Podstawowy szkielet HTML
Zaczynamy od stworzenia prostego szkieletu strony HTML. Będzie on zawierał kontener na naszą galerię oraz kilka zdjęć.
<!DOCTYPE html> <html lang="pl"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="Prosty poradnik, jak stworzyć galerię zdjęć bez slidera – krok po kroku."> <meta name="keywords" content="galeria zdjęć, HTML, CSS, web design, bez slidera"> <title>Galeria zdjęć bez slidera</title> <link rel="stylesheet" href="style.css"> </head> <body> <header> <h1>Moja Galeria Zdjęć</h1> </header> <main> <section class="gallery"> <figure> <img src="zdjecie1.jpg" alt="Opis zdjęcia 1"> <figcaption>Opis zdjęcia 1</figcaption> </figure> <figure> <img src="zdjecie2.jpg" alt="Opis zdjęcia 2"> <figcaption>Opis zdjęcia 2</figcaption> </figure> <figure> <img src="zdjecie3.jpg" alt="Opis zdjęcia 3"> <figcaption>Opis zdjęcia 3</figcaption> </figure> <!-- Dodaj więcej zdjęć według potrzeb --> </section> </main> </body> </html>
W tym momencie mamy surowy szkielet galerii. Zdjęcia są ułożone jeden pod drugim, co nie wygląda zbyt zachęcająco. Czas na stylizację!
Krok 2: Stylizacja galerii za pomocą CSS
Poniżej znajdziesz kod CSS, który zmieni zwykły zbiór zdjęć w elegancką galerię. Zdjęcia będą wyświetlane w siatce (gridzie), co jest lekkie, responsywne i przyjazne dla użytkownika.
/* style.css */ body { font-family: Arial, sans-serif; margin: 0; padding: 0; background-color: #f8f8f8; color: #333; } header { text-align: center; padding: 20px; background-color: #007bff; color: #fff; } .gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 15px; padding: 20px; max-width: 1200px; margin: 0 auto; } .gallery figure { border: 1px solid #ddd; background-color: #fff; border-radius: 5px; overflow: hidden; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); text-align: center; transition: transform 0.2s ease, box-shadow 0.2s ease; } .gallery figure:hover { transform: scale(1.05); box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); } .gallery img { width: 100%; height: auto; display: block; } .gallery figcaption { padding: 10px; font-size: 0.9em; color: #555; }
Co robi ten kod?
- Grid layout: Dzięki
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr))
zdjęcia układają się automatycznie w rzędy, dopasowując się do szerokości ekranu. - Efekty hover: Powiększenie i cień przy najechaniu kursorem dodają subtelnej dynamiki.
- Responsywność: Siatka działa świetnie zarówno na desktopach, jak i na urządzeniach mobilnych.
Krok 3: Optymalizacja zdjęć
Nie wystarczy tylko wrzucić zdjęcia – muszą być zoptymalizowane, by strona ładowała się szybko.
- Kompresja: Użyj narzędzi takich jak TinyPNG do zmniejszenia rozmiaru plików.
- Formaty: Nowoczesne formaty, takie jak WebP, mogą zmniejszyć wagę zdjęć nawet o 50%.
- Lazy loading: Dodaj atrybut
loading="lazy"
do tagów<img>
, aby zdjęcia ładowały się tylko wtedy, gdy użytkownik przewinie stronę w ich pobliże.
Przykład:
<img src="zdjecie1.webp" alt="Opis zdjęcia" loading="lazy">
Krok 4: Dodanie interakcji za pomocą CSS
Jeśli chcesz, aby galeria była bardziej interaktywna, możesz dodać efekty powiększenia zdjęcia przy kliknięciu. Użyj do tego pseudo-elementów i prostego CSS:
/* Efekt powiększenia zdjęcia */ .gallery figure:focus-within img { outline: 3px solid #007bff; transform: scale(1.1); transition: transform 0.2s ease, outline 0.2s ease; }
Aby zdjęcie mogło być „fokusowane”, dodaj atrybut tabindex="0"
:
<figure tabindex="0"> <img src="zdjecie1.jpg" alt="Opis zdjęcia 1"> <figcaption>Opis zdjęcia 1</figcaption> </figure>
Krok 5: Testowanie i publikacja
Gotową galerię możesz przetestować na różnych urządzeniach i przeglądarkach, aby upewnić się, że działa poprawnie. Jeśli masz hosting, wystarczy wrzucić pliki HTML i CSS na serwer, a jeśli chcesz szybko zobaczyć efekt, użyj lokalnego serwera (np. Live Server w VS Code).
Podsumowanie
Stworzenie galerii zdjęć bez slidera nie jest trudne, a efekty mogą być imponujące. Dzięki użyciu siatki CSS (grid), responsywności i optymalizacji zdjęć uzyskujemy lekkie i nowoczesne rozwiązanie. A najlepsze jest to, że możesz je dowolnie modyfikować i dostosować do własnych potrzeb.
Teraz czas na Ciebie – pobaw się kodem, dodaj własne zdjęcia i ciesz się efektowną galerią, która nie wymaga slidera!