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

Html & Css, Javascript
ihoan đã viết 2 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.

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

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

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

Chia cột bằng thuộc tính display flex trong CSS

Chia cột bằng thuộc tính display grid trong CSS

Nhập vào input hiển thị số dạng rút ngắn theo đơn vị

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

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

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

Hướng dẫn CSS border gradient

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