:modal

Baseline 已廣泛支援

此功能已成熟,並可在多種裝置和瀏覽器版本上執行。自 2022 年 9 月起,所有瀏覽器都已支援此功能。

:modal CSS 偽類匹配處於某種狀態的元素,在該狀態下,它會阻止所有與自身外部元素的互動,直到該互動被解除。:modal 偽類可以同時選擇多個元素,但其中只有一個會處於活動狀態並能夠接收輸入。

試一試

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 偽類選中的元素包括:

  • 使用 showModal() API 開啟的 dialog 元素。
  • 使用 requestFullscreen() API 開啟時,由 :fullscreen 偽類選中的元素。

示例

模態對話方塊樣式

此示例為當“更新詳細資訊”按鈕被啟用時開啟的模態對話方塊設定樣式。此示例是基於 <dialog> 元素示例構建的。

CSS

css
:modal {
  border: 5px solid red;
  background-color: yellow;
  box-shadow: 3px 3px 10px rgb(0 0 0 / 50%);
}

結果

規範

規範
HTML
# 選擇器-modal
選擇器 Level 4
# 選擇器定義-modal

瀏覽器相容性

另見