Сетка изображений

Здесь вы узнаете, как сделать сетку изображений при помощи CSS и JavaScript.


Сетка изображений

Здесь вы узнаете, как сделать галерею изображений, которая переключается между тремя видами: четыре изображения в ряд, два изображения и одно изображение на всю ширину экрана.

Попробовать самому »

Как сделать сетку изображений

Шаг 1) Добавляем 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>


Шаг 2) Добавляем CSS:

Чтобы создать раскладку, используем CSS Flexbox:

Пример


.row {
  display: flex;
  flex-wrap: wrap;
  padding: 0 4px;
}

/* Создаем две одинаковые колонки, располагающиеся рядом друг с другом */
.column {
  flex: 50%;
  padding: 0 4px;
}

.column img {
  margin-top: 8px;
  vertical-align: middle;
}

Попробовать самому »

Шаг 3) Добавляем JavaScript:

При помощи JavaScript создаем контролируемый вид сетки:

Пример


<button onclick="one()">1</button>
<button onclick="two()">2</button>
<button onclick="four()">4</button>

<script>
// Получаем элементы с классом "column"ы
var elements = document.getElementsByClassName("column");

// Декларируем переменную цикла
var i;

// Изображения во всю ширину экрана
function one() {
  for (i = 0; i < elements.length; i++) {
    elements[i].style.flex = "100%";
  }
}

// Два изображения рядом друг с другом
function two() {
  for (i = 0; i < elements.length; i++) {
    elements[i].style.flex = "50%";
  }
}

// Четыре изображения рядом друг с другом
function four() {
  for (i = 0; i < elements.length; i++) {
    elements[i].style.flex = "25%";
  }
}
</script>

Попробовать самому »