Tôi đã đưa ra một giải pháp "đáp ứng" cho các chế độ toàn màn hình:
Chế độ toàn màn hình chỉ có thể được bật trên một số điểm dừng nhất định . Theo cách này , phương thức sẽ hiển thị "bình thường" trên màn hình rộng hơn (máy tính để bàn) và toàn màn hình trên màn hình nhỏ hơn (máy tính bảng hoặc thiết bị di động) , mang lại cảm giác như một ứng dụng gốc.
Được triển khai cho Bootstrap 3 và Bootstrap 4 .
Bootstrap v4
Mã chung sau đây sẽ hoạt động:
.modal {
padding: 0 !important; // override inline padding-right added from js
}
.modal .modal-dialog {
width: 100%;
max-width: none;
height: 100%;
margin: 0;
}
.modal .modal-content {
height: 100%;
border: 0;
border-radius: 0;
}
.modal .modal-body {
overflow-y: auto;
}
Bằng cách bao gồm mã scss bên dưới, nó tạo ra các lớp sau cần được thêm vào .modal
phần tử:
+---------------+---------+---------+---------+---------+---------+
| | xs | sm | md | lg | xl |
| | <576px | ≥576px | ≥768px | ≥992px | ≥1200px |
+---------------+---------+---------+---------+---------+---------+
|.fullscreen | 100% | default | default | default | default |
+---------------+---------+---------+---------+---------+---------+
|.fullscreen-sm | 100% | 100% | default | default | default |
+---------------+---------+---------+---------+---------+---------+
|.fullscreen-md | 100% | 100% | 100% | default | default |
+---------------+---------+---------+---------+---------+---------+
|.fullscreen-lg | 100% | 100% | 100% | 100% | default |
+---------------+---------+---------+---------+---------+---------+
|.fullscreen-xl | 100% | 100% | 100% | 100% | 100% |
+---------------+---------+---------+---------+---------+---------+
Mã scss là:
@mixin modal-fullscreen() {
padding: 0 !important; // override inline padding-right added from js
.modal-dialog {
width: 100%;
max-width: none;
height: 100%;
margin: 0;
}
.modal-content {
height: 100%;
border: 0;
border-radius: 0;
}
.modal-body {
overflow-y: auto;
}
}
@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-down($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
.modal-fullscreen#{$infix} {
@include modal-fullscreen();
}
}
}
Bản trình diễn trên Codepen: https://codepen.io/andreivictor/full/MWYNPBV/
Bootstrap v3
Dựa trên các phản hồi trước đây cho chủ đề này (@Chris J, @kkarli), mã chung sau sẽ hoạt động:
.modal {
padding: 0 !important; // override inline padding-right added from js
}
.modal .modal-dialog {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
.modal .modal-content {
height: auto;
min-height: 100%;
border: 0 none;
border-radius: 0;
box-shadow: none;
}
Nếu bạn muốn sử dụng các chế độ toàn màn hình đáp ứng, hãy sử dụng các lớp sau cần được thêm vào .modal
phần tử:
.modal-fullscreen-md-down
- phương thức là toàn màn hình cho màn hình nhỏ hơn 1200px
.
.modal-fullscreen-sm-down
- phương thức là toàn màn hình cho màn hình nhỏ hơn 922px
.
.modal-fullscreen-xs-down
- phương thức là toàn màn hình cho màn hình nhỏ hơn 768px
.
Hãy xem đoạn mã sau:
/* Extra small devices (less than 768px) */
@media (max-width: 767px) {
.modal-fullscreen-xs-down {
padding: 0 !important;
}
.modal-fullscreen-xs-down .modal-dialog {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
.modal-fullscreen-xs-down .modal-content {
height: auto;
min-height: 100%;
border: 0 none;
border-radius: 0;
box-shadow: none;
}
}
/* Small devices (less than 992px) */
@media (max-width: 991px) {
.modal-fullscreen-sm-down {
padding: 0 !important;
}
.modal-fullscreen-sm-down .modal-dialog {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
.modal-fullscreen-sm-down .modal-content {
height: auto;
min-height: 100%;
border: 0 none;
border-radius: 0;
box-shadow: none;
}
}
/* Medium devices (less than 1200px) */
@media (max-width: 1199px) {
.modal-fullscreen-md-down {
padding: 0 !important;
}
.modal-fullscreen-md-down .modal-dialog {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
.modal-fullscreen-md-down .modal-content {
height: auto;
min-height: 100%;
border: 0 none;
border-radius: 0;
box-shadow: none;
}
}
Bản demo có sẵn trên Codepen: https://codepen.io/andreivictor/full/KXNdoO .
Những người sử dụng Sass làm tiền xử lý có thể tận dụng mixin sau:
@mixin modal-fullscreen() {
padding: 0 !important; // override inline padding-right added from js
.modal-dialog {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
.modal-content {
height: auto;
min-height: 100%;
border: 0 none;
border-radius: 0;
box-shadow: none;
}
}
margin: 0
vào.modal-dialog
.