27 Jan 2023

Creating a photo gallery using HTML, CSS and JavaScript

Creating a photo gallery using HTML, CSS, and JavaScript is a great way to showcase your images in an interactive and visually pleasing way. In this blog post, we will walk through the steps of building a simple photo gallery using these three languages, including examples for each step.

First, we will start by creating the HTML structure of the gallery. We will use a div element as the container for the gallery, and within that, we will add img elements for each photo. We will also add a class attribute to each img element so that we can target them with CSS.

For example:

<div id="gallery">
  <img src="image1.jpg" class="gallery-image">
  <img src="image2.jpg" class="gallery-image">
  <img src="image3.jpg" class="gallery-image">

Next, we will style the gallery using CSS. We will use CSS grid to create a grid layout for the images and add some basic styling such as padding and border. We will also add a hover effect so that when a user hovers over an image, it becomes larger and has a slightly different color.

For example:

#gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 10px;
  padding: 10px;

.gallery-image {
  border: 1px solid gray;
  padding: 5px;
  transition: transform 0.2s;

.gallery-image:hover {
  transform: scale(1.2);
  background-color: lightgray;

Finally, we will add some basic JavaScript functionality to the gallery. We will create a simple image slideshow that automatically cycles through the images in the gallery. We will also add a prev/next button so that the user can manually navigate through the images.

For example:

var currentImageIndex = 0;
var images = document.querySelectorAll(".gallery-image");

function nextImage() {
  images[currentImageIndex].style.display = "none";
  currentImageIndex = (currentImageIndex + 1) % images.length;
  images[currentImageIndex].style.display = "block";

function prevImage() {
  images[currentImageIndex].style.display = "none";
  currentImageIndex = (currentImageIndex - 1 + images.length) % images.length;
  images[currentImageIndex].style.display = "block";

var nextButton = document.getElementById("next-button");
nextButton.addEventListener("click", nextImage);

var prevButton = document.getElementById("prev-button");
prevButton.addEventListener("click", prevImage);

setInterval(nextImage, 3000);

With these HTML, CSS, and JavaScript examples, you should be able to create a simple photo gallery that is visually pleasing and interactive. Remember to adjust the code to your needs.