Contents

使用 CSS 將元素居中的 3 種簡單方法

### 快速鏈接

⭐一個簡單的 HTML 檔案來練習居中

⭐使用 Flexbox 將 Div 元素置中

⭐使用 CSS 網格將 Div 元素置中

⭐使用 CSS 定位將 Div 元素置中

要點

在網頁設計中集中元素曾經是一項艱鉅的任務,但當代 CSS 可以輕鬆地實現中心對齊。

Flexbox 已成為以集中方式對齊內容的主要技術,提供了多功能且適應性強的網格系統,有助於元素的無縫排列。

透過利用 CSS 網格和定位技術可以實現網站上元素的集中,從而在控制內容的排列和對齊方面提供廣泛的精確度。

長期以來,將網頁佈局中的元素居中一直是設計師的煩惱,因為這並不總是一件容易完成的任務。然而,許多設計都需要將元素置於中心,值得慶幸的是,當代 CSS 為這一目的提供了強有力的支持。

了解利用 Flexbox、CSS 網格以及傳統 CSS 定位技術將 div 水平和垂直居中的流程。

練習居中的簡單 HTML 文件

提供的程式碼範例說明了透過利用基本 HTML 結構實現水平對齊,同時操作 CSS 屬性以實現各種效果。對不同樣式表的實驗將有助於深入了解這些屬性的行為。

 <!DOCTYPE html>
<html>
<head>
  <style>
  div { width: 100px; height: 100px; }
 body { height: calc(100vh-16px); }
  </style>
</head>
<body>
  <div></div>
</body>
</html>

使用 Flexbox 將 Div 元素置中

Flexbox 採用簡單的策略,因其適應性而成為首選。此佈局模型有利於輕鬆對齊和分配空間,使其成為在容器內集中組件的最佳解決方案。

透過應用以下 CSS 規則,利用 Flexbox 集中內容:

⭐ 將您的 div 元素包裝在容器內。將 display: flex 屬性套用到容器以啟動 Flexbox 佈局。在一個簡單的測試案例中,主體可以充當容器:

 body {
  display: flex;
} 

⭐ 使用 justify-content 和align-items 屬性分別沿著主軸(水平)和橫軸(垂直)對齊項目。若要將兩個軸置中,請將這些屬性設為 center 。對於一個簡單的演示,您還應該將 body 的高度設為 100vh,這樣您就可以看到垂直對齊的效果。

 body {
  justify-content: center;
  align-items: center;
} 

⭐ 為 div 指定背景顏色以視覺化其在最終頁面上的位置:

 div { background-color: red; } 

從上到下和從左到右的方向。

/bc/images/div-flex.png

使用 CSS 網格將 Div 元素置中

使用 CSS 網格將元素居中可以高度精確地控制佈局和對齊,從而在設計具有複雜結構的網頁時具有更大的靈活性。

⭐ 為您的佈局定義一個容器並套用 display: grid 樣式來啟動 CSS 網格。在這種情況下,身體充當容器。

 body {
  display: grid;
} 

⭐ 使用 grid-template-columns 和 grid-template-rows 屬性來定義網格的結構。對於居中,單列和行就足夠了,因此兩者都使用 1fr。

 body {
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
} 

⭐ 使用 place-items 屬性將網格的內容水平和垂直居中。

 body {
  place-items: center;
} 

⭐ 設定 div 元素的背景樣式,使其在網格容器的中心可視化。

 div {
  background-color: blue;
} 

在這種情況下,一個單獨的屬性控制 Div 元素在網頁上的最重要位置:

/bc/images/screenshot-2023-12-18-at-12-51-05.png

使用 CSS 定位將 Div 元素置中

使用 CSS position 屬性讓 Div 元素居中需要了解 CSS 轉換和過渡的功能。這種理解可以使元素在其父容器內正確對齊。下面提供了詳細的過程以及說明性範例。

⭐ 若要定位 div 元素,請確保其容器具有相對位置。這會建立一個相對定位上下文,因此您可以將 div 放置在其容器的中心。

 body {
  position: relative;
} 

⭐ 對 div 元素套用絕對定位,然後使用 top 和 left 屬性將 div 的左上角精確定位在其容器的中心。

 div {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
 background-color: green;
} 

translate(-50%,-50%) 轉換將 div 向左和向上移動一半寬度和一半高度。

這種方法的操作方法是先將元素的左上角與螢幕中心對齊,然後分別水平和垂直移動其寬度的二分之一和高度的二分之一。

/bc/images/div-position.png

Flexbox、CSS 網格和 CSS 定位是將網站內容居中的高效技術。透過利用 Flexbox,人們可以透過最少的編碼輕鬆實現水平和垂直居中。 CSS 網格提供了強大的二維對齊功能,同時採用 CSS 定位允許元素相對於其包含的父元素居中。

透過採用這樣的方法,可以確保網站的精緻和優美的外觀。