:modal

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022.

:modalCSS擬似クラスで、操作が解除されるまで、それ以外の要素とのすべての操作を除外する状態にある要素と一致します。 :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

ブラウザーの互換性

BCD tables only load in the browser

関連情報