Web開発

チェックボックスを使ってCSSだけでポップアップを作成する方法

スポンサーリンク

概要

前回、「Javascriptを使用してポップアップを自作する方法」を説明したのですが、今回は、チェックボックスを使ってCSSだけでポップアップを作成する方法です。

サンプル

See the Pen 擬似ポップアップ by take it easy (@take-it-easy) on CodePen.

コーディング方法

HTML

<input type="checkbox" id="popup-trigger">
<label class="popup-open" for="popup-trigger">ポップアップを表示します。</label>
<div class="popup-overlay">
  <div class="popup-window">
    <div class="popup-header">
      <h2>ポップアップの見出し</h2>
      <label class="popup-close" for="popup-trigger">×</label>
    </div>
    <div class="popup-body">
      <p>※ポップアップに表示する内容はこちらに記述します。</p>
    </div>
  </div>
</div>
ポイント

チェックボックスのidと、ポップアップを開くボタン用のラベルと、ポップアップを閉じる用ボタンのラベルをforで紐付けます。

CSS

/* チェックボックスは非表示 */
input#popup-trigger {
  display: none;
}

/* 表示ボタン、閉じるボタン */
.popup-open,
.popup-close {
  cursor: pointer;
}

/* ポップアップを開くの擬似ボタン */
.popup-open {
  display: block;
  text-align: center;
  border: 1px solid;
  width: 250px;
  padding: 10px;
  margin: 0 auto;
}

/* オーバレイ */
.popup-overlay {
  display: none;
}

/* ポップアップが開いた時のオーバレイ */
input#popup-trigger:checked ~ .popup-overlay {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.3);
}

/* ポップアップ */
.popup-window {
  width: 500px;
  height: 300px;
  background-color: #fff;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 10px;
}

/* ポップアップのヘッダー */
.popup-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px;
  background-color: rgba(0, 0, 0, 0.1);
  border-radius: 10px 10px 0 0;
}

/* ポップアップの見出し */
.popup-header h2 {
  font-size: 16px;
  font-weight: normal;
  margin: 0;
  padding: 0;
}

/* ポップアップの内容 */
.popup-body {
  padding: 0 10px;
}
ポイント

input[type=”checkbox”]は非表示にします。

オーバレイ部分は非表示にしておきます。

ラベルをクリックして、チェックボックスにチェックがある時に、オーバレイが表示されるようにしています。

HTML&CSSの参考書の紹介

すでに完成しているサイトを見ながら1つひとつのテクニックを紐解いて学んでいく本です。
実際の制作現場で需要が高いテクニックを5つのWebサイトとともに学べます。

タイトルとURLをコピーしました