その名の通り、「背景として機能してくれる、便利な擬似要素」になります。
ただし、
この擬似要素を使うには(反映されるには)条件があり、現時点では、
・dialog要素を showModal() を使って開いた時
・何らかの要素を Fullscreen API を使って全画面表示した時
に適用されます。
何にでも適用できるわけではありませんが、使い方を覚えておけば、そのうち役にたつことと思います。
それでは上記の2つの例をベースに、backdrop擬似要素の使い方について、
次のセクションよりそれぞれ書いていきます。
dialogタグを showModal() を使って開いた時
これは、以前の記事:
dialog要素を使ってモーダルウインドウを作成する方法
↑こちらでもご紹介している方法です。
次のようなhtmlを用意しておき、JavaScriptで対象のダイアログ要素に対して
showModal() を使うことで、::backdrop擬似要素が有効になります。
[html]
<div> <button id="buttonOpen">モーダルを開く</button> </div> <dialog class="container-modal" id="modalDialog"> <div class="wrapper-modal"> <h2>シンプルなモーダル</h2> <p> サンプルテキスト。 dialogタグを使うことで、検索エンジンにも この要素がダイアログ(モーダルウインドウ)だよ、 ということを明示できるのでは、と期待しています。 </p> <button id="buttonClose" type="reset">モーダルを閉じる</v-btn> </div> </dialog>
[JavaScript側]
<script> const myDialog = document.getElementById('modalDialog'); const myButtonOpen = document.getElementById('buttonOpen'); const myButtonClose = document.getElementById('buttonClose'); myButtonOpen.addEventListener('click', () => { myDialog.showModal(); }); myButtonClose.addEventListener('click', () => { myDialog.close('閉じた時に渡すテキスト(String)を指定できます'); }); </script>
cssの例としては、次のような感じでしょうか。
[cssの例]
.container-modal { background-color: initial; border: none; height: 100%; left: 0; position: fixed; top: 0; width: 100%; } .container-modal::backdrop { background-color: rgba(0, 0, 0, .5); } .wrapper-modal { background: rgba(255, 255, 255, 1); border: none; border-radius: 8px; box-shadow: 0 4px 8px rgba(0, 0, 0, .3); height: 320px; left: 50%; opacity: 1; padding: 40px; position: absolute; top: 50%; transform: translate(-50%, -50%); transition: opacity .3s; width: 480px; z-index: 20; }
↑この例では、10〜12行目の部分で
backgroud擬似要素に背景を指定しています。
何らかの要素を Fullscreen API を使って全画面表示した時
続いて、Fullscreen API を使った例です。
こちらも以前の記事、
[JavaScript]あるボタンを押したら、いま見ているブラウザをフルスクリーン表示にする方法[Fullscreen API]
↑こちらにて紹介している方法です。
まず、次のようなhtml構造があったとします。
[html]
<div class="fullscreen-target wrapper-target"> これがフルスクリーン表示したい要素 </div> <button class="fullscreen-trigger">これを押したらFullScreen</button>
上記のhtmlに対して、次のようにJavaScriptを記述することで、
対象の要素のフルスクリーン表示が有効になります。
[JavaScript側]
<script> const fullscreenTrigger = document.querySelector('.fullscreen-trigger'); fullscreenTrigger.addEventListener('click', ()=>{ const isFullscreen = document.fullscreenElement; const fullscreenTarget = document.querySelector('.fullscreen-target'); if( isFullscreen ) { document.exitFullscreen(); } else { fullscreenTarget.requestFullscreen(); } }); </script>
cssの例としては、次のような感じが想定できます。
[cssの例]
.wrapper-target::backdrop { background: rgba(0, 0, 0, .25); }
↑このように書くことで、
FullscreenAPI を通じて全画面表示した要素に対して、
backdrop擬似要素を有効にすることができます。
この記事のまとめ
今回の記事では、
・dialog要素を showModal() を使って開いた時
・何らかの要素を Fullscreen API を使って全画面表示した時
に使用することができる「backdrop擬似要素」についてご紹介しました。
特に、dialog要素を使ったモーダルの作り方については、
今後のWeb制作で一般的になってくる手法かなと感じていますので、
覚えておくときっと役にたつかもしれません。
当サイトでは、今後もWebデザイン・Web制作に関する記事を掲載していく予定です。
この記事が、皆さんのWeb制作を
より楽しくさせる事ができたらいいな、と願っています。
※この記事は、内容の品質向上を目的に、随時更新を行う場合があります。