如何實現CSS布局中的垂直對齊?

一、vertical-align屬性詳解

在CSS中,有一個用於控制行內元素垂直對齊的屬性:vertical-align。這個屬性的取值很多,常用的如下:

vertical-align: baseline;
vertical-align: sub;
vertical-align: super;
vertical-align: text-top;
vertical-align: text-bottom;
vertical-align: middle;
vertical-align: top;
vertical-align: bottom;

其中,vertical-align: middle;是最常用也最簡單的控制垂直居中的方式。舉個例子:

<div class="container">
  <div class="child">
    <p>這裡是要垂直居中的文字</p>
  </div>
</div>

.container {
  height: 300px;
  display: table-cell;
  vertical-align: middle;
  text-align: center;
}

.child {
  display: inline-block;
}

其中,父元素.container的高度要先規定好,然後使用display: table-cell;和vertical-align: middle;就能實現這個元素內部的垂直居中。注意,這個方法只針對行內元素、內聯塊元素、表格單元格等這些可以應用vertical-align屬性的元素有效。

二、flex布局中的垂直居中

Flex布局(Flexible Box)是CSS3新增的一種布局方式,它常用於解決常規布局難以解決的問題,比如垂直居中。

在Flex布局中,實現元素垂直居中的方法非常簡單,只需要在父元素上加上display: flex;align-items: center;即可:

<div class="container">
  <div class="child">
    <p>這裡是要垂直居中的文字</p>
  </div>
</div>

.container {
  height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.child {
  display: inline-block;
}

其中,父元素.container也要先規定好高度,然後使用display: flex;align-items: center;就能實現所有的直接子元素垂直居中。

三、absolute+transform方式

我們還可以使用absolute+transform方式實現垂直居中,只需要這樣寫:

<div class="container">
  <div class="child">
    <p>這裡是要垂直居中的文字</p>
  </div>
</div>

.container {
  position: relative;
  height: 300px;
}

.child {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
}

其中,父元素.container要先設置定位方式為absolute和高度,子元素.child則使用定位方式absolute、top:50%和transform: translateY(-50%);就能實現垂直居中效果了。只不過要注意,這個方法只能用於已知高度和寬度的元素進行垂直居中。

四、line-height方式

對於行內元素而言,還有一種更容易上手的垂直居中方法:line-height。

代碼如下:

<p class="box">這裡是要垂直居中的文字</p>

.box {
  height: 100px;
  line-height: 100px;
}

其中,設置好元素高度後,將line-height設置為相同的高度,就能實現垂直居中。

五、表格單元格方法

最後,還有一種方法是使用表格單元格方式實現垂直居中。代碼如下:

<table class="table">
  <tbody>
    <tr>
      <td class="cell">這裡是要垂直居中的文字</td>
    </tr>
  </tbody>
</table>

.table {
  height: 300px;
  border-collapse: collapse;
}

.cell {
  text-align: center;
  vertical-align: middle;
}

其中,使用table標籤、border-collapse: collapse;隱藏邊框後,再將單元格td的vertical-align: middle;,就能實現單元格內的元素垂直居中。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/182997.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-24 16:26
下一篇 2024-11-24 16:26

相關推薦

  • 如何實現圖像粘貼到蒙版

    本文將從多個方面介紹圖像粘貼到蒙版的實現方法。 一、創建蒙版 首先,在HTML中創建一個蒙版元素,用於接收要粘貼的圖片。 <div id=”mask” style=”widt…

    編程 2025-04-29
  • Django ORM如何實現或的條件查詢

    在我們使用Django進行資料庫操作的時候,查詢條件往往不止一個,一個好的查詢語句需要考慮我們的查詢要求以及業務場景。在實際工作中,我們經常需要使用或的條件進行查詢,本文將詳細介紹…

    編程 2025-04-29
  • Python一次性輸入10個數如何實現?

    Python提供了多種方法進行輸入,可以手動逐個輸入,也可以一次性輸入多個數。在需要輸入大量數據時,一次性輸入十個數就非常方便。下面我們從多個方面來講解如何一次性輸入10個數。 一…

    編程 2025-04-28
  • CSS sans字體家族

    CSS sans字體家族是一組基於CSS的無襯線字體,具有在不同設備和瀏覽器上保持一致的特性。本文將從優勢、使用、自定義等多個方面對CSS sans字體家族進行詳細介紹。 一、優勢…

    編程 2025-04-28
  • 如何實現van-picker點擊遮罩不關閉

    van-picker是一個非常實用的Vue組件,但默認情況下,點擊遮罩會自動關閉選擇器。本文將介紹如何通過代碼實現van-picker點擊遮罩不關閉的功能。 一、通過覆蓋遮罩實現 …

    編程 2025-04-27
  • 如何實現矩陣相乘等於E

    本文將介紹如何通過代碼實現兩個矩陣相乘等於單位矩陣E。 一、線性代數基礎 要理解矩陣相乘等於E,需要先了解一些線性代數基礎知識。 首先,矩陣的乘法是滿足結合律的,即(A*B)*C=…

    編程 2025-04-27
  • 如何實現一個隨機抽數生成器

    隨機數在程序開發中是非常常見的需求,而隨機抽數生成器則是其一大應用場景。在這篇文章中,我們將從多個方面來探討如何實現一個隨機抽數生成器,包括隨機數的概念、生成隨機數的方法、如何抽取…

    編程 2025-04-27
  • SVG與CSS

    一、SVG與CSS的介紹 SVG(可縮放矢量圖形)是用於描述二維矢量圖形的XML標記語言。其可以通過文本編輯器進行編輯,也可以通過JavaScript動態操作SVG元素。與常規圖像…

    編程 2025-04-25
  • CSS教程:從入門到精通

    一、CSS是什麼 CSS(Cascading Style Sheets)是一種用於定義網頁樣式的語言。由於網頁內容和樣式是分開保存的,因此CSS可以使設計者和開發者分離出樣式與內容…

    編程 2025-04-25
  • Flex布局水平居中詳解

    在網頁開發中,常常需要對網頁元素進行居中操作,而其中水平居中是最為常用和基礎的操作。Flex布局是一個強大的排版方式,為水平居中提供了更為靈活和便利的解決方案。本文將從多個方面對F…

    編程 2025-04-25

發表回復

登錄後才能評論