Jak zrobić galerię zdjęć na stronie HTML?

Aby stworzyć galerię zdjęć na stronie HTML, można wykorzystać czysty kod HTML i CSS lub dodać interaktywność za pomocą JavaScript. Poniżej znajdziesz szczegółowy poradnik z przykładami kodu i propozycjami różnych wariantów galerii – od prostych, statycznych układów, po efektowne wersje z animacjami i powiększaniem zdjęć.

Najprostsza galeria zdjęć w HTML

Każde zdjęcie wstaw jako element <img> w sekcji <div>. To najprostszy wariant bez stylowania:

<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="UTF-8">
  <title>Galeria zdjęć</title>
</head>
<body>
  <h1>Moja Galeria</h1>
  <div>
    <img src="zdjecie1.jpg" alt="Opis zdjęcia 1" width="200">
    <img src="zdjecie2.jpg" alt="Opis zdjęcia 2" width="200">
    <img src="zdjecie3.jpg" alt="Opis zdjęcia 3" width="200">
    <!-- Dodaj kolejne zdjęcia -->
  </div>
</body>
</html>

Zastosowanie – taka galeria jest bardzo szybka do wdrożenia i idealna na proste strony lub portfolio.

Galeria z użyciem miniatur i powiększania (podstawowy „Lightbox” w HTML)

Możesz umożliwić powiększanie zdjęć poprzez linkowanie miniatur do większych wersji obrazków:

<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="UTF-8">
  <title>Galeria z powiększaniem</title>
</head>
<body>
  <h1>Galeria</h1>
  <div>
    <a href="zdjecie1_duze.jpg" target="_blank">
      <img src="zdjecie1_mini.jpg" alt="Zdjęcie 1" width="150">
    </a>
    <a href="zdjecie2_duze.jpg" target="_blank">
      <img src="zdjecie2_mini.jpg" alt="Zdjęcie 2" width="150">
    </a>
    <a href="zdjecie3_duze.jpg" target="_blank">
      <img src="zdjecie3_mini.jpg" alt="Zdjęcie 3" width="150">
    </a>
  </div>
</body>
</html>

Po kliknięciu miniatury otworzy się powiększone zdjęcie w nowej karcie.

Galeria zdjęć z efektami CSS

Możesz łatwo poprawić wygląd galerii, dodając style CSS – np. układ siatki, hover z powiększeniem, marginesy.

<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="UTF-8">
  <title>Galeria z efektami CSS</title>
  <style>
    .galeria {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
    }
    .galeria img {
      width: 180px;
      box-shadow: 0 2px 8px rgba(0,0,0,0.18);
      border-radius: 6px;
      transition: transform 0.3s;
      cursor: pointer;
    }
    .galeria img:hover {
      transform: scale(1.10);
      z-index: 2;
    }
  </style>
</head>
<body>
  <h2>Moja stylowa galeria</h2>
  <div class="galeria">
    <img src="zdjecie1.jpg" alt="Zdjęcie 1">
    <img src="zdjecie2.jpg" alt="Zdjęcie 2">
    <img src="zdjecie3.jpg" alt="Zdjęcie 3">
    <!-- Kolejne zdjęcia -->
  </div>
</body>
</html>

Efekt – po najechaniu na zdjęcie następuje płynne powiększenie i wyraźniejsze wyróżnienie wybranego obrazu.

Responsywna galeria w siatce z CSS Grid

Aby galeria dobrze wyglądała także na telefonach, warto użyć CSS Grid

<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="UTF-8">
  <title>Galeria responsywna</title>
  <style>
    .galeria {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
      gap: 10px;
    }
    .galeria img {
      width: 100%;
      display: block;
      border-radius: 4px;
    }
  </style>
</head>
<body>
  <h2>Galeria responsywna</h2>
  <div class="galeria">
    <img src="zdjecie1.jpg" alt="Zdjęcie 1">
    <img src="zdjecie2.jpg" alt="Zdjęcie 2">
    <img src="zdjecie3.jpg" alt="Zdjęcie 3">
    <!-- Dodaj więcej zdjęć -->
  </div>
</body>
</html>

Zastosowanie – idealna do galerii mobilnych i dynamicznych – liczba kolumn automatycznie dopasowuje się do szerokości ekranu.

Galeria z powiększaniem zdjęć przy użyciu JavaScript

Poniższy wariant pozwala, by po kliknięciu zdjęcie zostało powiększone na tle przyciemnionym („Lightbox”):

<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="UTF-8">
  <title>Galeria z Lightboxem</title>
  <style>
    .galeria img {
      width: 160px;
      margin: 6px;
      cursor: pointer;
      border-radius: 3px;
    }
    .overlay {
      display: none;
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0,0,0,0.8);
      justify-content: center;
      align-items: center;
      z-index: 100;
    }
    .overlay img {
      max-height: 80vh;
      max-width: 90vw;
      border-radius: 10px;
    }
    .overlay.active {
      display: flex;
    }
  </style>
</head>
<body>
  <h2>Galeria z Lightboxem</h2>
  <div class="galeria">
    <img src="zdjecie1.jpg" alt="Zdjęcie 1">
    <img src="zdjecie2.jpg" alt="Zdjęcie 2">
    <img src="zdjecie3.jpg" alt="Zdjęcie 3">
  </div>
  <div class="overlay" id="overlay">
    <img src="#" alt="Powiększone zdjęcie" id="lightbox-img">
  </div>
  <script>
    const imgs = document.querySelectorAll('.galeria img');
    const overlay = document.getElementById('overlay');
    const lightboxImg = document.getElementById('lightbox-img');
    imgs.forEach(img => {
      img.addEventListener('click', () => {
        lightboxImg.src = img.src;
        overlay.classList.add('active');
      });
    });
    overlay.addEventListener('click', () => {
      overlay.classList.remove('active');
      lightboxImg.src = '#';
    });
  </script>
</body>
</html>

Zastosowanie – efekt pozwala na przyjemne przeglądanie zdjęć i sprawdza się nawet w rozbudowanych galeriach.

Podpowiedzi i dobre praktyki

  • Optymalizacja obrazów – przed dodaniem do galerii zmniejsz rozmiar zdjęć oraz utwórz oddzielne wersje miniaturowe, aby przyspieszyć ładowanie strony;
  • Nazewnictwo plików – stosuj spójne i opisowe nazwy obrazów oraz zadbaj o atrybuty alt poprawiające dostępność i SEO;
  • Porządek w kodzie – wydziel zdjęcia do osobnego folderu, np. /galeria/;
  • Dodawanie podpisów – pod każdym zdjęciem możesz umieszczać podpis za pomocą <figcaption> wewnątrz elementu <figure>.

Zastosowania galerii zdjęć na stronach internetowych

  • Portfolio fotograficzne lub graficzne;
  • Galerie wydarzeń (konferencje, wesela, eventy);
  • Katalogi produktów;
  • Wizytówki firmowe z prezentacją usług;
  • Artykuły blogowe bogate w zdjęcia.

Każdy z zaprezentowanych wariantów możesz dowolnie modyfikować i rozbudowywać, np. o kolejne style, układ kafelkowy, paginację lub integrację z systemami CMS. Prosty kod HTML i CSS pozwala stworzyć atrakcyjne galerie zdjęć, które sprawdzą się zarówno na małych, prywatnych stronach, jak i na profesjonalnych serwisach internetowych.

Programista i twórca serwisu Creative Coding, absolwent Politechniki Warszawskiej (WEiTI). Od 10+ lat łączy front‑end, grafikę generatywną i narzędzia dla twórców; opublikował 120+ projektów i artykułów, prowadził warsztaty dla 2 000+ uczestników. Pracuje z JavaScriptem, Three.js, P5.js i GLSL, bada wydajność i dokumentuje procesy, tworząc praktyczne przewodniki dla osób łączących kod z obrazem, dźwiękiem i interakcją.
Zostaw komentarz

Komentarze

Brak komentarzy. Dlaczego nie rozpoczniesz dyskusji?

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *