Мне было интересно, как мне изменить цвет фона моего модального окна после его отображения, например следующее: Я хочу, чтобы цвет фона покрывал всю страницу, а не только окрашивал само модальное окно. Я попытался:
.modal {
background-color: rgb(255, 0, 0);
}
Но это привело, как я уже сказал, к цветному модальному модулю, а не ко всей странице. Вот фрагмент для справки:
const modal = document.querySelector(".modal");
const openModal = document.querySelector(".open-button");
const closeModal = document.querySelector(".close-button");
openModal.addEventListener("click", () => {
modal.showModal();
});
closeModal.addEventListener("click", () => {
modal.close();
});
.modal {
background-color: rgb(255, 0, 0);
}
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<meta http-equiv = "X-UA-Compatible" content = "IE=edge">
<meta name = "viewport" content = "width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel = "stylesheet" href = "style.css">
</head>
<body>
<button class = "button open-button" >Open</button>
<dialog class = "modal">
Hi! I'm 15Rabi
<button class = "button close-button" >Close</button>
</dialog>
</body>
<script src = "script.js"></script>
</html>
Попробуйте это в своем CSS
dialog::backdrop {
background-color: rgb(255, 0, 0);
}
Чтобы изменить цвет фона для элемента <dialog>
, вам нужно стилизовать псевдоэлемент ::backdrop
следующим образом:
.modal::backdrop {
background-color: rgb(255, 0, 0);
}
В идеале, вы бы хотели, чтобы цвет был полупрозрачным, а не сплошным красным, поэтому вместо этого вы можете использовать rgba
.modal::backdrop {
background-color: rgba(255, 0, 0, 0.5);
}
Ссылки на соответствующие документы: