<!DOCTYPE html>
    <html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
    <head>
<title>3 cách dễ dàng để căn giữa một phần tử bằng CSS</title>
<meta name="description" content="3 cách dễ dàng để căn giữa một phần tử bằng CSS - 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="3 cách dễ dàng để căn giữa một phần tử bằng CSS">
<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;3-cach-de-dang-de-can-giua-mot-phan-tu-bang-css-7897.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/3-cach-de-dang-de-can-giua-mot-phan-tu-bang-css-7897.html">
<link rel="shortcut icon" href="https://www.nguoicodonvn2008.info/favicon.ico">
<link rel="canonical" href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/3-cach-de-dang-de-can-giua-mot-phan-tu-bang-css-7897.html">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/karaoke-dual/" title="Tin Tức - Karaoke Dual" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/nhac-tre/" title="Tin Tức - Nhạc trẻ" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tru-tinh/" title="Tin Tức - Trữ tình" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/nuoc-ngoai/" title="Tin Tức - Nước ngoài" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/remix/" title="Tin Tức - Remix" type="application/rss+xml">
<link rel="alternate" href="https://www.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://www.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://www.nguoicodonvn2008.info/vi/news/rss/cuoc-song/" title="Tin Tức - Cuộc sống" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/phan-mem/" title="Tin Tức - Phần mềm" type="application/rss+xml">
<link rel="alternate" href="https://www.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://www.nguoicodonvn2008.info/vi/news/rss/hoc-tap/" title="Tin Tức - Học tập" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tai-lieu/" title="Tin Tức - Tài liệu" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/de-thi/" title="Tin Tức - Đề thi" type="application/rss+xml">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/style.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/news.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/custom.css" type="text/css">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/bootstrap.min.js" type="text/javascript">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/style.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://www.nguoicodonvn2008.info/themes/default/css/news.css">
<link rel="stylesheet" href="https://www.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://www.nguoicodonvn2008.info/">https://www.nguoicodonvn2008.info</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>3 cách dễ dàng để căn giữa một phần tử bằng CSS</h1>
		<ul class="list-inline">
			<li>Thứ năm - 28/12/2023 09:12</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="3 cách dễ dàng để căn giữa một phần tử bằng CSS" src="https://st.quantrimang.com/photos/image/2023/12/25/can-giua-mot-phan-tu-bang-css-1.jpg" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<p style="text-align: justify;">Căn giữa một phần tử trong bố cục web của bạn là một thách thức luôn khiến các nhà thiết kế thất vọng. Việc này không phải lúc nào cũng dễ thực hiện nhưng nhiều thiết kế yêu cầu vị trí chính giữa. May mắn thay,&nbsp;CSS&nbsp;hiện đại hiện đã hỗ trợ tốt cho việc căn giữa.</p>

<p style="text-align: justify;">Cùng tìm hiểu cách căn giữa div theo chiều ngang và chiều dọc bằng cách sử dụng Flexbox, CSS Grid và&nbsp;CSS Positioning qua bài viết sau đây!</p>

<h2 style="text-align: justify;">Một file HTML đơn giản để thực hành căn giữa</h2>

<p style="text-align: justify;">Tất cả các ví dụ sau đây đều sử dụng tài liệu HTML tối thiểu để minh họa việc căn giữa bằng CSS. Sử dụng markup này và thay đổi CSS theo từng phần để xem các thuộc tính này hoạt động như thế nào.</p>

<pre id="pre0">
<code>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;style&gt;
  div { width: 100px; height: 100px; }
 body { height: calc(100vh - 16px); }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>

<h2 style="text-align: justify;">Sử dụng Flexbox để căn giữa phần tử div</h2>

<p style="text-align: justify;">Bạn sẽ cần hiểu những điều cơ bản về Flexbox trước khi sử dụng nó để căn giữa phần tử div. May mắn thay, Flexbox tuân theo một cách tiếp cận đơn giản, đó là lý do tại sao nó được sử dụng rộng rãi nhất. Nó cung cấp một mô hình bố cục linh hoạt giúp dễ dàng căn chỉnh và phân bổ không gian giữa các mục trong một container, lý tưởng cho việc căn giữa các phần tử.</p>

<p style="text-align: justify;">Sử dụng CSS sau để căn giữa với Flexbox.</p>

<p style="text-align: justify;">1. Gói phần tử&nbsp;<strong>div</strong>&nbsp;của bạn trong một container. Áp dụng thuộc tính&nbsp;<strong>display: flex</strong>&nbsp;cho container để kích hoạt bố cục Flexbox. Trong một trường hợp thử nghiệm đơn giản,&nbsp;<strong>body</strong>&nbsp;có thể đóng vai trò là container:</p>
<iframe allowtransparency="true" data-google-container-id="a!2" data-google-query-id="CI278vensoMDFTLiTAIdBSkILg" data-load-complete="true" frameborder="0" height="0" hspace="0" id="aswift_1" marginheight="0" marginwidth="0" name="aswift_1" sandbox="" scrolling="no" vspace="0" width="694"></iframe>

<pre id="pre1">
<code>body {
  display: flex;
}</code></pre>

<p style="text-align: justify;">2. Sử dụng các thuộc tính&nbsp;<strong>unity-content</strong>&nbsp;và&nbsp;<strong>Align-items</strong>&nbsp;để căn chỉnh các mục lần lượt dọc theo trục chính (ngang) và trục chéo (dọc). Để căn giữa cả hai trục, hãy đặt các thuộc tính này thành&nbsp;<strong>center</strong>. Đối với bản demo đơn giản, bạn cũng nên đặt chiều cao của body là&nbsp;<strong>100vh</strong>&nbsp;để có thể thấy tác dụng của việc căn chỉnh theo chiều dọc.</p>

<pre id="pre2">
<code>body {
  justify-content: center;
  align-items: center;
}</code></pre>

<p style="text-align: justify;">3. Cung cấp cho div màu nền để trực quan hóa vị trí của nó trên trang cuối cùng:</p>

<pre id="pre3">
<code>div { background-color: red; }</code></pre>

<p style="text-align: justify;">Xem kết quả trong DevTools của Google Chrome, bạn có thể thấy cách hai thuộc tính kiểm soát việc căn chỉnh dọc theo từng trục:</p>

<figure>
<div style="text-align: justify;"><img alt="Hình vuông màu đỏ ở giữa trang web có Chrome Dev Tools hiển thị HTML và CSS" data-i="0" data-src="https://st.quantrimang.com/photos/image/2023/12/25/can-giua-mot-phan-tu-bang-css-1.jpg" data-was-processed="true" height="577" src="https://st.quantrimang.com/photos/image/2023/12/25/can-giua-mot-phan-tu-bang-css-1.jpg" width="773" /></div>

<figcaption>
<div style="text-align: justify;">Hình vuông màu đỏ ở giữa trang web có Chrome Dev Tools hiển thị HTML và CSS</div>
</figcaption>
</figure>

<h2 style="text-align: justify;">Sử dụng CSS Grid để căn giữa phần tử div</h2>

<p style="text-align: justify;">Sử dụng CSS Grid để căn giữa một phần tử là một phương pháp hiệu quả khác, cung cấp khả năng kiểm soát chính xác bố cục và việc căn chỉnh.</p>

<p style="text-align: justify;">1. Xác định container cho bố cục của bạn và áp dụng kiểu&nbsp;<strong>display:grid</strong>&nbsp;để kích hoạt CSS Grid. Trong trường hợp này, body đóng vai trò là container.</p>

<pre id="pre4">
<code>body {
  display: grid;
}</code></pre>

<p style="text-align: justify;">2. Sử dụng các thuộc tính&nbsp;<strong>grid-template-column</strong>&nbsp;và&nbsp;<strong>grid-template-rows</strong>&nbsp;để xác định cấu trúc grid của bạn. Để căn giữa, một cột và một hàng là đủ, vì vậy hãy sử dụng&nbsp;<strong>1fr</strong>&nbsp;cho cả hai.</p>
<iframe allowtransparency="true" data-google-container-id="a!3" data-google-query-id="CNj02PmnsoMDFQFeKgodWKEFIA" data-load-complete="true" frameborder="0" height="0" hspace="0" id="aswift_2" marginheight="0" marginwidth="0" name="aswift_2" sandbox="" scrolling="no" vspace="0" width="694"></iframe>

<pre id="pre5">
<code>body {
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
}</code></pre>

<p style="text-align: justify;">3. Sử dụng thuộc tính&nbsp;<strong>place-items</strong>&nbsp;để căn giữa nội dung của grid, theo cả chiều ngang và chiều dọc.</p>

<pre id="pre6">
<code>body {
  place-items: center;
}</code></pre>

<p style="text-align: justify;">4. Tạo kiểu cho nền của phần tử div để hiển thị nó ở giữa grid container.</p>

<pre id="pre7">
<code>div {
  background-color: blue;
}</code></pre>

<p style="text-align: justify;">Trong trường hợp này, một thuộc tính duy nhất kiểm soát vị trí trung tâm của div trên trang của bạn:</p>

<figure>
<div style="text-align: justify;"><br />
<img alt="Một hình vuông màu xanh lam ở giữa trang web có Chrome Dev Tools hiển thị HTML và CSS" data-adbro-processed="true" data-i="1" data-src="https://st.quantrimang.com/photos/image/2023/12/25/can-giua-mot-phan-tu-bang-css-2.jpg" data-was-processed="true" height="577" src="https://st.quantrimang.com/photos/image/2023/12/25/can-giua-mot-phan-tu-bang-css-2.jpg" width="773" /></div>

<figcaption>
<div style="text-align: justify;">Một hình vuông màu xanh lam ở giữa trang web có Chrome Dev Tools hiển thị HTML và CSS</div>
</figcaption>
</figure>

<h2 style="text-align: justify;">Sử dụng CSS Positioning để căn giữa phần tử div</h2>

<p style="text-align: justify;">Để sử dụng thuộc tính vị trí CSS để căn giữa một div, bạn cũng cần hiểu cách chuyển đổi CSS bằng các hiệu ứng chuyển tiếp hoạt động. Đây là hướng dẫn từng bước kèm theo ví dụ.</p>

<p style="text-align: justify;">1. Để định vị phần tử div, hãy đảm bảo container của nó có vị trí tương đối. Điều này thiết lập bối cảnh định vị tương đối, do đó bạn có thể đặt div vào giữa container của nó.</p>

<pre id="pre8">
<code>body {
  position: relative;
}</code></pre>

<p style="text-align: justify;">2. Áp dụng định vị tuyệt đối cho phần tử div, sau đó sử dụng thuộc tính trên cùng và bên trái để định vị chính xác góc trên cùng bên trái của div ở giữa container của nó.</p>

<pre id="pre9">
<code>div {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
 background-color: green;
}</code></pre>

<p style="text-align: justify;">Phép biến đổi&nbsp;<strong>translate(-50%, -50%)</strong>&nbsp;di chuyển div sang trái và hướng lên trên một nửa chiều rộng và một nửa chiều cao.</p>

<p style="text-align: justify;">Phương pháp này hoạt động bằng cách trước tiên căn giữa góc trên cùng của phần tử, sau đó di chuyển nó tương đối bằng một nửa chiều rộng và một nửa chiều cao của nó.</p>

<figure>
<div style="text-align: justify;"><img alt="Một hình vuông màu xanh lục ở giữa trang web có Chrome Dev Tools hiển thị HTML và CSS" data-i="2" data-src="https://st.quantrimang.com/photos/image/2023/12/25/can-giua-mot-phan-tu-bang-css-3.jpg" data-was-processed="true" height="577" src="https://st.quantrimang.com/photos/image/2023/12/25/can-giua-mot-phan-tu-bang-css-3.jpg" width="773" /></div>

<figcaption>
<div style="text-align: justify;">Một hình vuông màu xanh lục ở giữa trang web có Chrome Dev Tools hiển thị HTML và CSS</div>
</figcaption>
</figure>

<div style="text-align: justify;"><iframe allowtransparency="true" data-google-container-id="a!4" data-google-query-id="COLb0_qnsoMDFQVPKgodl7wGbA" data-load-complete="true" frameborder="0" height="0" hspace="0" id="aswift_3" marginheight="0" marginwidth="0" name="aswift_3" sandbox="" scrolling="no" vspace="0" width="694"></iframe></div>

<p style="text-align: justify;">Flexbox, CSS Grid và CSS Positioning là những công cụ mạnh mẽ mà bạn có thể sử dụng để căn giữa các thành phần trên trang web. Với Flexbox, bạn có thể căn giữa theo cả chiều ngang và chiều dọc chỉ bằng một vài dòng code. CSS Grid cung cấp khả năng căn chỉnh mạnh mẽ theo hai chiều và bạn có thể sử dụng CSS Positioning để căn giữa một phần tử so với container chính của nó.</p>

<p style="text-align: justify;">Với những kỹ thuật này, bạn có thể đảm bảo rằng các trang web của mình trông sạch sẽ và chuyên nghiệp.</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/3-cach-de-dang-de-can-giua-mot-phan-tu-bang-css-7897.html" title="3 cách dễ dàng để căn giữa một phần tử bằng CSS">https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/3-cach-de-dang-de-can-giua-mot-phan-tu-bang-css-7897.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://www.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://www.nguoicodonvn2008.info/themes/default/images/car.png" alt=""></span>
</div>
<div id="run_cronjobs" style="visibility:hidden;display:none;"><img alt="cron" src="/index.php?second=cronjobs&amp;p=a6ax6G14" width="1" height="1" /></div>
<script src="https://www.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://www.nguoicodonvn2008.info/assets/js/language/vi.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/global.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/site.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/news.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/main.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/custom.js"></script>
<script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "url": "https://www.nguoicodonvn2008.info",
            "logo": "https://www.nguoicodonvn2008.info/uploads/angel.gif"
        }
        </script>
<script src="https://www.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>