Jak stworzyć: rozszerzona siatka

Naucz się, jak używać CSS i JavaScript do tworzenia rozszerzalnej siatki.

Rozszerzona siatka

Kliknij jedną z boków, aby ją "rozszerzyć" (szerokość 100%):

Box 1
Box 2
Box 3

Spróbuj sam

Utwórz rozszerzoną siatkę

Krok 1 - Dodaj HTML:

<!-- Sieć: trzy kolumny -->
<div class="row">
  <div class="column" onclick="openTab('b1');" style="background:green;">Box 1</div>
  <div class="column" onclick="openTab('b2');" style="background:blue;">Box 2</div>
  <div class="column" onclick="openTab('b3');" style="background:red;">Box 3</div>
</div>
<!-- Rozszerzona siatka (domyślnie ukryta) -->
<div id="b1" class="containerTab" style="display:none;background:green">
  Jeśli chcesz możliwości zamknięcia kontenera, dodaj przycisk zamknięcia
  <span onclick="this.parentElement.style.display='none'" class="closebtn">x</span>
  <h2>Box 1</h2>
  <p>Lorem ipsum..</p>
</div>
<div id="b2" class="containerTab" style="display:none;background:blue">
  <span onclick="this.parentElement.style.display='none'" class="closebtn">x</span>
  <h2>Box 2</h2>
  <p>Lorem ipsum..</p>
</div>
<div id="b3" class="containerTab" style="display:none;background:red">
  <span onclick="this.parentElement.style.display='none'" class="closebtn">x</span>
  <h2>Box 3</h2>
  <p>Lorem ipsum..</p>
</div>

Krok 2 - Dodaj CSS:

Utwórz trzy kolumny:

/* Sieć: trzy równe kolumny, które się unoszą */
.column {
  przykład: lewo;
  szerokość: 33.33%;
  wysokość wewnętrzna: 50px;
  wyśrodkowanie tekstu: środek;
  rozmiar czcionki: 25px;
  kursor: wskaźnik;
  kolor: biały;
}
.containerTab {
  wysokość wewnętrzna: 20px;
  kolor: biały;
}
/* Usuń float po kolumnach */
.row:after {
  zawartość: "";
  wyświetl: tabela;
  czyść: oba;
}
/* Przycisk zamknięcia wewnątrz obrazu */
.closebtn {
  przykład: prawo;
  kolor: biały;
  rozmiar czcionki: 35px;
  kursor: wskaźnik;
}

Krok 3 - Dodaj JavaScript:

// Ukryj wszystkie elementy z klasą "containerTab", oprócz tych, które pasują do klikalnych kolumn
function openTab(tabName) {
  var i, x;
  x = document.getElementsByClassName("containerTab");
  for (i = 0; i < x.length; i++) {
    x[i].style.display = "none";
  }
  document.getElementById(tabName).style.display = "block";
}

Spróbuj sam