Como criar: Grade de imagens

Aprenda como criar uma grade de imagens.

Grade de imagens

Aprenda como criar uma galeria de imagens, clique no botão para alternar entre quatro, duas ou imagens de largura total:

Experimente pessoalmente

Criar uma grade de imagens

Primeiro passo - Adicionar HTML:

<div class="row">
  <div class="column">
    <img src="wedding.jpg">
    <img src="rocks.jpg">
    <img src="falls2.jpg">
    <img src="paris.jpg">
    <img src="nature.jpg">
    <img src="mist.jpg">
    <img src="paris.jpg">
  </div>
  <div class="column">
    <img src="underwater.jpg">
    <img src="ocean.jpg">
    <img src="wedding.jpg">
    <img src="mountainskies.jpg">
    <img src="rocks.jpg">
    <img src="underwater.jpg">
  </div>
  <div class="column">
    <img src="wedding.jpg">
    <img src="rocks.jpg">
    <img src="falls2.jpg">
    <img src="paris.jpg">
    <img src="nature.jpg">
    <img src="mist.jpg">
    <img src="paris.jpg">
  </div>
  <div class="column">
    <img src="underwater.jpg">
    <img src="ocean.jpg">
    <img src="wedding.jpg">
    <img src="mountainskies.jpg">
    <img src="rocks.jpg">
    <img src="underwater.jpg">
  </div>
</div>

Segundo passo - Adicione CSS:

Crie o layout usando CSS Flexbox:

.row {
  display: flex;
  flex-wrap: wrap;
  padding: 0 4px;
}
/* Crie duas colunas iguais em linha */
.column {
  flex: 50%;
  padding: 0 4px;
}
.column img {
  margin-top: 8px;
  vertical-align: middle;
}

Experimente pessoalmente

Terceiro passo - Adicione JavaScript:

Crie uma visão de grade controlável usando JavaScript:

<button onclick="one()">1</button>
<button onclick="two()">2</button>
<button onclick="four()">4</button>
<script>
// Obtém os elementos com class="column"
var elements = document.getElementsByClassName("column");
// Declara uma variável "loop"
var i;
// Imagem de largura total
function one() {
  for (i = 0; i < elements.length; i++) {
    elements[i].style.flex = "100%";
  }
}
// Duas imagens em linha
function two() {
  for (i = 0; i < elements.length; i++) {
    elements[i].style.flex = "50%";
  }
}
// Quatro imagens em linha
function four() {
  for (i = 0; i < elements.length; i++) {
    elements[i].style.flex = "25%";
  }
}
</script>

Experimente pessoalmente

Páginas relacionadas

Tutorial:CSS Flexbox

Tutorial:Como criar grade de imagem responsiva