Cách để tạo một Modal, Popup bằng HTML, CSS, JS cơ bản

Html & Css, Javascript
ihoan đã viết 4 năm trước

Để tạo ra một Modal thì chúng ta cần ba ngôn ngữ để tạo lên nó gồn:
– HTML (bộ khung hiển thị cho Modal).
– CSS (mã gọi màu sắc và thuộc tính cho HTML thông qua id hoặc class).
– JS (Tạo hành động, bằng cách thay đổi CSS của HTML thông qua id hoặc class).

Code Modal

HTML, CSS, JS của Modal được viết như sau:

<button onclick="momodal()">Hiển thị</button>

Đây là nút gọi Modal để người dùng click vào, bạn có thể thay thế button bằng thẻ a.

<!-- html modal -->
<div class="nenmodal" id="nenmodal-1">
<div class="nenmodal2"></div>
<div class="ndmodal">
<div class="closemodal"><button onclick="momodal()">×</button></div>
<div class="titlemodal">Tiêu đề của Modal</div>
Nội dung hiển thị trong Modal của bạn
</div>
</div>
<!-- kết thúc html modal -->

Nội dung HTML của Modal, khi sử dụng bạn chỉ cần thay đổi nội dung lại là xong.

<style>
/* CSS nền hiển thị Modal */
.nenmodal .nenmodal2 {
position:fixed;
top:0px;
left:0px;
width:100vw;
height:100vh;
background:rgba(0,0,0,0.7);
z-index:1;
display:none;
}
/* CSS bảng nội dung Modal */
.nenmodal .ndmodal {
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%) scale(0);
background:#fff;
width:600px;
z-index:2;
text-align:center;
padding:20px;
box-sizing:border-box;
font-family:"Open Sans",sans-serif;
border-radius:20px;
display: block;
position: fixed;
box-shadow:0px 0px 10px #111;
}
@media (max-width: 700px) {
.nenmodal .ndmodal {width:90%;}
}
/* CSS bao bọc của nút tắt Modal */
.nenmodal .closemodal {
text-align:center;
margin-top:-40px;
margin-bottom:10px;
}
/* CSS tieu de của Modal */
.titlemodal{
font-weight:bold;
font-size:20px;
margin-bottom:10px;
}
/* CSS nút tắt modal */
.closemodal button{
width:40px;
height:40px;
padding:0px;
font-size:30px;
border-radius:100%;
background:#333;
color:#fff;
border:none;
}
.nenmodal.active .nenmodal2 {
display:block;
}
/* CSS hiệu ứng hiển thị Modal */
.nenmodal.active .ndmodal {
transition:all 300ms ease-in-out;
transform:translate(-50%,-50%) scale(1);
}
</style>

CSS tạo màu sắc và thuộc tính cho Modal HTML, mình đã chú thích chi tiết từng dòng css cho các bạn dễ dàng hình dung và thay đổi theo ý mình.

<!-- js Modal -->
<script>
function momodal(){
document.getElementById("nenmodal-1").classList.toggle("active");
}
</script>

Cuối cùng là JS khởi chạy Modal khi người dùng click vào nút gọi.

5682
Bài viết cùng chủ đề

Crop hình ảnh bằng CSS đơn giản và cần thiết

Hiệu ứng Hover cho hình ảnh khi đưa chuột vào

Hiển thị menu khi click chuột phải như ở màn hình máy tính

Căn giữa Hình ảnh, thẻ Div, Text trong CSS

Thay đổi màu link khi di chuột vào

Thư viện mã QR kèm logo ở giữa

Hiệu ứng zoom, phóng to hình ảnh khi đưa chuột vào

Bộ lọc select chọn Tỉnh Thành, Quận huyện, Xã phường, sử dụng data-id

Xóa bỏ gạch chân cho link trong html css

Ẩn bớt nội dung và thêm dấu 3 chấm khi nội dung quá dài