Я использую ngx-bootstrap в своем проекте.
modal.html
<ng-template #modalMainNotification>
<div class = "modal-header">
<h4 class = "modal-title pull-left">{{notificationModal.title}}</h4>
<button type = "button" class = "close pull-right" aria-label = "Close" (click) = "modalRef.hide()">
<span aria-hidden = "true">×</span>
</button>
</div>
<div class = "modal-body">
<div [innerHTML] = "notificationModal.content_plus | safeHtml"></div>
</div>
</ng-template>
Он создает компонент в DOM<bs-modal-backdrop class = "modal-backdrop fade in show"></bs-modal-backdrop>
<modal-container ....></modal-container>
Насколько я понимаю, я должен сделать filter:blur(2px)
to modal-backdrop
, но это не имеет никакого эффекта.
модальный.scss
.modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: $zindex-modal-backdrop;
background-color: $modal-backdrop-bg;
filter: blur(4px); // no effect
// Fade for backdrop
&.fade { opacity: 0; }
&.show { opacity: $modal-backdrop-opacity; }
}
ОБНОВЛЕНИЕ 1:
В качестве примера вы можете посмотреть один из примеров на stackblitz - ссылка
Если вы хотите изменить стиль своего модального окна, обязательно добавьте encapsulation
в свой компонент modal
:
Например:
@Component({
selector: "app-modal",
templateUrl: "./modal.component.html",
styleUrls: ["./modal.component.css"],
encapsulation: ViewEncapsulation.None // add encaptulation
})
И он будет работать нормально.
Вы можете проверить здесь: https://stackblitz.com/edit/angular-ngx-bootstrap-modal-znbth2?file=src/app/app.component.ts
Если ожидается, что это будет глобально в приложении, я бы поместил стиль в корневой файл стиля style.scss в корневую папку, а не в стиль вашего компонента.
стиль.scss:
.modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: $zindex-modal-backdrop;
background-color: $modal-backdrop-bg;
filter: blur(4px); // no effect
// Fade for backdrop
&.fade { opacity: 0; }
&.show { opacity: $modal-backdrop-opacity; }
}
Я переместился в корневую папку, эффект размытия все равно не работает
Я решил эту проблему, добавив backdrop-filter: blur(10px);
к modal-container
, и это сработало для меня.
в любом случае нет правильного эффекта размытия на фоне