<!DOCTYPE html>
    <html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
    <head>
<title>Cách tạo popup bằng HTML, CSS và JavaScript</title>
<meta name="description" content="Cách tạo popup bằng HTML, CSS và JavaScript - Savefile - Tin Tức -...">
<meta name="author" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :.">
<meta name="copyright" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :. [admin@nguoicodonvn2008.info]">
<meta name="robots" content="index, archive, follow, noodp">
<meta name="googlebot" content="index,archive,follow,noodp">
<meta name="msnbot" content="all,index,follow">
<meta name="generator" content="NukeViet v4.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Cách tạo popup bằng HTML, CSS và JavaScript">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;cach-tao-popup-bang-html-css-va-javascript-7117.html">
<meta property="og:site_name" content=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.">
<meta property="og:url" content="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/cach-tao-popup-bang-html-css-va-javascript-7117.html">
<link rel="shortcut icon" href="https://nguoicodonvn2008.info/favicon.ico">
<link rel="canonical" href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/cach-tao-popup-bang-html-css-va-javascript-7117.html">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/karaoke-dual/" title="Tin Tức - Karaoke Dual" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/nhac-tre/" title="Tin Tức - Nhạc trẻ" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tru-tinh/" title="Tin Tức - Trữ tình" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/nuoc-ngoai/" title="Tin Tức - Nước ngoài" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/remix/" title="Tin Tức - Remix" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tam-su-tinh-yeu/" title="Tin Tức - Tâm sự tình yêu" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tho-suu-tam/" title="Tin Tức - Thơ sưu tầm" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/cuoc-song/" title="Tin Tức - Cuộc sống" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/phan-mem/" title="Tin Tức - Phần mềm" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/kien-thuc-may-tinh/" title="Tin Tức - Kiến thức máy tính" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/hoc-tap/" title="Tin Tức - Học tập" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tai-lieu/" title="Tin Tức - Tài liệu" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/de-thi/" title="Tin Tức - Đề thi" type="application/rss+xml">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/style.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/news.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/custom.css" type="text/css">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/bootstrap.min.js" type="text/javascript">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/style.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://nguoicodonvn2008.info/themes/default/css/news.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/custom.css">
<style type="text/css">
	body{background: #fff;}
</style>
    </head>
    <body>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">.&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.</h2>
		<p class="pull-right"><a title=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;." href="https://nguoicodonvn2008.info/">https://nguoicodonvn2008.info</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Cách tạo popup bằng HTML, CSS và JavaScript</h1>
		<ul class="list-inline">
			<li>Thứ hai - 22/05/2023 00:58</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
		</div>
				<div class="imghome">
			<img alt="Cách tạo popup bằng HTML, CSS và JavaScript" src="https://st.quantrimang.com/photos/image/2023/05/17/tao-popup-windows-2.jpg" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<p>Cửa sổ popup xuất hiện ở khắp nơi trên Internet. Chúng không hoàn toàn xấu. Dưới đây là&nbsp;<strong>cách tạo popup tốt bằng HTML, CSS và&nbsp;JavaScript</strong>.</p>

<p><img alt="Cửa sổ popup " data-i="0" data-src="https://st.quantrimang.com/photos/image/2023/05/17/popup-window-7.jpg" data-was-processed="true" height="340" src="https://st.quantrimang.com/photos/image/2023/05/17/popup-window-7.jpg" width="650" /></p>

<h2>Dùng HTML tạo cấu trúc nội dung</h2>

<p>Viết một số code HTML chứa cửa sổ phương thức ẩn bật lên khi bạn click vào một nút bấm. Trong trường hợp này, bạn sẽ hiện một từ có ý nghĩa, như Hello! Cửa sổ popup thường có tiêu đề cùng một số nội dung.</p>

<p>Ngày khi kích hoạt cửa sổ popup, một hiệu ứng mờ sẽ xuất hiện trên nền. Thêm class vào phần bạn dùng để chọn phương thức sau đó trong JavaScript.</p>

<pre id="pre0">
&lt;body&gt;
    &lt;button class=&quot;open-modal&quot;&gt;Hello!&lt;/button&gt;

    &lt;div class=&quot;modal-content hidden-modal&quot;&gt;
        &lt;div class=&quot;modal-header&quot;&gt;
            &lt;h3&gt;Meaning of Hello!&lt;/h3&gt;
            &lt;button class=&quot;close-modal&quot;&gt;&amp;times;&lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&quot;modal-body&quot;&gt;
            &lt;p&gt;Hello is a greeting in the English language. It is used at
            the start of a sentence as an introduction whether in person or
           on the phone.&lt;/p&gt;
        &lt;/div&gt;
    &lt;/div&gt; 

    &lt;div class=&quot;blur-bg hidden-blur&quot;&gt;&lt;/div&gt;
    &lt;script src=&quot;script.js&quot;&gt;&lt;/script&gt;
&lt;/body&gt;</pre>

<p>Trang sẽ hiện như sau:</p>

<p><img alt="Tạo cửa sổ popup" data-i="1" data-src="https://st.quantrimang.com/photos/image/2023/05/17/tao-popup-windows-1.jpg" data-was-processed="true" height="320" src="https://st.quantrimang.com/photos/image/2023/05/17/tao-popup-windows-1.jpg" width="650" /></p>

<h2>Dùng CSS để tạo kiểu</h2>

<p>Dùng CSS để định dạng cửa sổ popup. Đặt cửa sổ ở giữa của trang web trên nền đen, nó sẽ hiển thị rõ ràng. Bạn cũng cần tạo kiểu cho cửa sổ, background và kích thước font.</p>

<p>Đầu tiên, tạo một kiểu thống nhất cho toàn bộ trang bằng cách đặt lề, padding và chiều cao dòng. Sau đó, căn chỉnh các phần tử ở body ở giữa trên background sau.</p>

<pre id="pre1">
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    line-height: 1;
}

body {
    height: 100%;
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    background: #000;
    gap: 30px;
}</pre>

<p>Tiếp theo, tạo nút&nbsp;<strong>open-modal</strong>. Tô màu nền khác cho phần còn lại của trang để nó trở nên nổi bật. Ngoài ra, đặt màu font, kích thước, padding và thời gian chuyển tiếp.</p>

<pre id="pre2">
.open-modal {
    background: #20c997;
    color: #fff;
    border: none;
    padding: 20px 40px;
    font-size: 48px;
    border-radius: 100px;
    cursor: pointer;
    transition: all 0.3s;
    outline: none;
}

.open-modal:active {
    transform: translateY(-17px);
}</pre>

<p>Sau đó, tạo kiểu nội dung sẽ hiện khi cửa sổ mở. Đặt nền trắng, đặt chiều dài của nó nhỏ hơn phần body và thêm padding.</p>

<p>Sau đó, cấp z-index cho nó, để nó hiện ở phía trước của nút&nbsp;<strong>open-modal</strong>. Ngoài ra, đặt&nbsp;<strong>hidden-modal</strong>&nbsp;hiện ở dạng none. Nó sẽ ẩn cho tới khi bạn kích hoạt.</p>

<pre id="pre3">
.modal-content {
    background: #ccc;
    width: 500px;
    padding: 20px;
    border-radius: 10px;
    z-index: 99;
}

.modal-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 16px;
    color: #000;
    font-size: 30px;
}

.modal-body p { 
   font-size: 22px;
    line-height: 1.5; 
} 

.hidden-modal { 
   display: none; 
}</pre>

<p>Sau đó, tạo kiểu nút&nbsp;<strong>close-modal&nbsp;</strong>với background trong suốt và căn chỉnh nó ở giữa.</p>

<pre id="pre4">
.close-modal {
    background: transparent;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 20px;
    width: 20px;
    font-size: 40px;
}

.close-modal:hover {
    color: #fa5252;
}</pre>

<p>Cuối cùng, tạo kiểu phần tử blur, sẽ hiện trên nền khi cửa sổ mở. Nó sẽ có chiều cao và rộng tối đa cùng một bộ lọc background. Đặt độ mờ là none để nó khong hiện cho tới khi cửa sổ mở.</p>

<pre id="pre5">
.blur-bg {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background: rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(5px);
}

.hidden-blur {
    display: none;
}
</pre>

<p>Sau khi thêm vào CSS, trang sẽ như sau:</p>

<p><img alt="Trang kết quả" data-i="2" data-src="https://st.quantrimang.com/photos/image/2023/05/17/tao-popup-windows-2.jpg" data-was-processed="true" height="259" src="https://st.quantrimang.com/photos/image/2023/05/17/tao-popup-windows-2.jpg" width="650" /></p>

<h2>Kiểm soát popup bằng code JavaScript</h2>

<p>Bạn sẽ dùng JavaScript để mở và đóng cửa sổ popup bằng cách hiện hoặc ẩn nó. Thêm trình nghe sự kiện vào nút bấm để kích hoạt nó mở &amp; đóng khi bạn click vào.</p>

<p>Đầu tiên, chọn các phần tử liên quan bằng class CSS mà bạn đã xác định trong HTML:</p>

<pre id="pre6">
let modalContent = document.querySelector(&quot;.modal-content&quot;);
let openModal = document.querySelector(&quot;.open-modal&quot;);
let closeModal = document.querySelector(&quot;.close-modal&quot;);
let blurBg = document.querySelector(&quot;.blur-bg&quot;);</pre>

<p>Thêm trình nghe sự kiện vào nút bấm&nbsp;<strong>open-modal&nbsp;</strong>để nó mở cửa sổ khi bạn click vào.</p>

<pre id="pre7">
openModal.addEventListener(&quot;click&quot;, function () {
    modalContent.classList.remove(&quot;hidden-modal&quot;);
    blurBg.classList.remove(&quot;hidden-blur&quot;);
});</pre>

<p>Thực hiện các hành động ngược lại để xử lý đóng popup nhưng lúc này, gói chúng vào một hàm được đặt tên. Hành động này sẽ xử lý hành vi cho nhiều sự kiện có thể khiến cửa sổ popup đóng.</p>

<pre id="pre8">
let closeModalFunction = function () {
    modalContent.classList.add(&quot;hidden-modal&quot;)
    blurBg.classList.add(&quot;hidden-blur&quot;)
}</pre>

<p>Thêm trình nghe sự kiện để xử lý các click trên nền hoặc nút đóng. Trường hợp này là người dùng nhấn phím Escape.</p>

<pre id="pre9">
blurBg.addEventListener(&quot;click&quot;, closeModalFunction);
closeModal.addEventListener(&quot;click&quot;, closeModalFunction);

document.addEventListener(&quot;keydown&quot;, function (event) {
    if (event.key === &quot;Escape&quot;
     &amp;&amp; !modalContent.classList.contains(&quot;hidden&quot;)
   ) {
        closeModalFunction();
    }
});</pre>

<p>Giờ khi click nút&nbsp;<strong>Hello!</strong>, popup sẽ hiện. Bạn cso thể đóng nó bằng cách nhấn vào nút hủy ở bên phải của cửa sổ.</p>

<p><img data-i="3" data-src="https://st.quantrimang.com/photos/image/2023/05/17/tao-popup-windows-3.jpg" data-was-processed="true" height="276" src="https://st.quantrimang.com/photos/image/2023/05/17/tao-popup-windows-3.jpg" width="650" /></p>

<p>Thế là xong! Hi vọng bài viết hữu ích với các bạn.</p>
		</div>
				<div id="author">
						<p>
				<strong>Nguồn tin:</strong>
				Quantrimang.com
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/cach-tao-popup-bang-html-css-va-javascript-7117.html" title="Cách tạo popup bằng HTML, CSS và JavaScript">https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/cach-tao-popup-bang-html-css-va-javascript-7117.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; .&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.
		</div>
		<div id="contact">
			<a href="mailto:admin@nguoicodonvn2008.info">admin@nguoicodonvn2008.info</a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://nguoicodonvn2008.info/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
		</script>
		<div class="car-top">
  <span><img src="https://nguoicodonvn2008.info/themes/default/images/car.png" alt=""></span>
</div>
<script src="https://nguoicodonvn2008.info/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="nv4c_e856T",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=0,nv_recaptcha_ver=2,nv_recaptcha_sitekey="",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://nguoicodonvn2008.info/assets/js/language/vi.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/global.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/site.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/news.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/main.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/custom.js"></script>
<script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "url": "https://nguoicodonvn2008.info",
            "logo": "https://nguoicodonvn2008.info/uploads/angel.gif"
        }
        </script>
<script src="https://nguoicodonvn2008.info/themes/default/js/bootstrap.min.js"></script>
<script type="text/javascript">
var $scrolltop = $('.car-top');
$scrolltop.on('click', function () {
    $('html,body').animate({
        scrollTop: 0
    }, 800);
    $(this).addClass("car-run");
    setTimeout(function(){ $scrolltop.removeClass('car-run');}, 1000);
    return false;
});
$(window).on('scroll', function ()
{ 
    if($(window).scrollTop() >= 200)
    {
        $scrolltop.addClass("show");
        $scrolltop.addClass("car-down");
    }
    else
    {
       $scrolltop.removeClass("show");
       setTimeout(function(){ $scrolltop.removeClass('car-down');}, 300);
    }
});
</script>
</body>
</html>