どのように作成するか:拡張グリッド

CSSとJavaScriptを使って拡張可能なグリッドを作成する方法を学びます。

拡張グリッド

ボックスをクリックして「拡張」します(100% 幅):

ボックス 1
ボックス 2
ボックス 3

自分で試してみる

拡張グリッドを作成

第1歩 - HTML を追加:

<!-- グリッド:三列 -->
<div class="row">
  <div class="column" onclick="openTab('b1');" style="background:green;">ボックス 1</div>
  <div class="column" onclick="openTab('b2');" style="background:blue;">ボックス 2</div>
  <div class="column" onclick="openTab('b3');" style="background:red;">ボックス 3</div>
</div>
<!-- 拡張グリッド(デフォルトで非表示) -->
<div id="b1" class="containerTab" style="display:none;background:green;">
  <!-- タイトルを閉じる機能を追加したい場合は、閉じるボタンを追加してください -->
  <span onclick="this.parentElement.style.display='none'" class="closebtn">x</span>
  <h2>ボックス 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>ボックス 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>ボックス 3</h2>
  <p>Lorem ipsum..</p>
</div>

第2ステップ - CSSを追加:

3つの列を作成:

/* グリッド:3つの等幅の列、互いに浮動 */
.column {
  float: left;
  width: 33.33%;
  padding: 50px;
  text-align: center;
  font-size: 25px;
  cursor: pointer;
  color: white;
}
.containerTab {
  padding: 20px;
  color: white;
}
/* カラムの後の浮動をクリアする */
.row:after {
  content: "";
  display: table;
  clear: both;
}
/* 画像内の閉じるボタン */
.closebtn {
  float: right;
  color: white;
  font-size: 35px;
  cursor: pointer;
}

第3ステップ - JavaScriptを追加:

// すべての class="containerTab" を持つ要素を非表示にする(クリック可能なグリッド列と一致する要素を除く)
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";
}

自分で試してみる