概要
前回、「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>
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;
}
HTML&CSSの参考書の紹介
すでに完成しているサイトを見ながら1つひとつのテクニックを紐解いて学んでいく本です。
実際の制作現場で需要が高いテクニックを5つのWebサイトとともに学べます。
リンク