:modal
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2022年9月.
:modal は CSS の擬似クラスで、操作が解除されるまで、それ以外の要素とのすべての操作を除外する状態にある要素と一致します。 :modal 擬似クラスを使用して、複数の要素を同時に選択することができますが、アクティブになり、入力を受け付けることができるのはそのうちの 1 つのみです。
試してみましょう
button {
display: block;
margin: auto;
width: 10rem;
height: 2rem;
}
:modal {
background-color: beige;
border: 2px solid burlywood;
border-radius: 5px;
}
p {
color: black;
}
<p>Would you like to see a new random number?</p>
<button id="showNumber">Show me</button>
<dialog id="favDialog">
<form method="dialog">
<p>Lucky number is: <strong id="number"></strong></p>
<button>Close dialog</button>
</form>
</dialog>
const showNumber = document.getElementById("showNumber");
const favDialog = document.getElementById("favDialog");
const number = document.getElementById("number");
showNumber.addEventListener("click", () => {
number.innerText = Math.floor(Math.random() * 1000);
favDialog.showModal();
});
構文
css
:modal {
/* ... */
}
使用上のメモ
ページの他の部分をユーザーが操作できないようにし、 :modal 擬似クラスによって選択される要素の例としては、例えば以下のようなものが含まれます。
dialog要素がshowModal()API で開かれたとき。requestFullscreen()API で開かれたときに:fullscreen擬似クラスで選択される要素。
例
>モーダルダイアログのスタイル設定
この例では、「詳細を更新」ボタンがアクティブ化された際に開くモーダルダイアログにスタイル設定を行なっています。この例は、 <dialog> 要素の例を基に構築されています。
CSS
css
:modal {
border: 5px solid red;
background-color: yellow;
box-shadow: 3px 3px 10px rgb(0 0 0 / 50%);
}
結果
仕様書
| Specification |
|---|
| HTML> # selector-modal> |
| Selectors Level 4> # selectordef-modal> |
ブラウザーの互換性
Loading…
関連情報
dialog要素- 他の要素表示状態擬似クラス:
:fullscreenおよび:picture-in-picture - 擬似クラスの一覧