1. 程式人生 > >html中div使用CSS實現水平/垂直居中的多種方式

html中div使用CSS實現水平/垂直居中的多種方式

CSS中的居中,在工作中,會經常遇到。它可以分為水平居中和垂直居中,以下是幾種實現居中的方式。
git 檢視原始碼
配合線上預覽,效果更佳

以下例子中,涉及到的CSS屬性值。


    .parent-frame {

      width: 200px;

      height: 200px;

      border: 1px solid red;

    }

    .child-frame {

      width: 100px;

      height: 100px;

      border: 1px dotted blue;

    }

1: text-align:center,水平居中

塊狀元素,水平居中


  <div class="parent-frame">

    子元素水平居中

    <i style="display:block; text-align: center;color: blue">塊狀元素,水平居中</i>

  </div>
子元素水平居中 塊狀元素,水平居中

2:margin: 0 auto,水平居中

水平居中。上下外邊框距為0,左右外邊距瀏覽器會自動計算平分

  <div class="parent-frame">
    子元素水平居中
    <i class="child-frame" style="display: block;margin: 0 auto">塊狀元素,水平居中</i>
  </div>
子元素水平居中 塊狀元素,水平居中

3:line-height值,垂直居中

垂直居中。line-height屬性,設定行間的距離(行高)。不允許使用負值。
單行文字的元素才適用,多行元素中不適用這種方法。元素內容是單行,並且其高度是固定不變的,

  <div class="parent-frame">
    <div style="line-height: 200px;">line-height值=父height值</div>
  </div>
line-height值=父height值

4: 使用float屬性,配合relative定位,實現水平居中

給父元素設定float,然後將父元素整體向右移動50%,再將子元素整體向左移動50%,來實現水平居中。

記得將父元素清除浮動。


  <div class="parent-frame">

    <div style="float: left; position: relative; left: 50%; clear: both;" >

      <div style="position: relative; left: -50%">雖然寬度不同weiqinl</div>

    </div>

    <div style="float: left; position: relative; left: 50%; clear: both;">

      <div style="position: relative; left: -50%">但一樣</div>

    </div>

    <div style="float: left; position: relative; left: 50%; clear: both;">

      <div style="position: relative; left: -50%">水平居中了</div>

    </div>

    <div style="float: left; position: relative; left: 50%; clear: both;">

      <div style="position: relative; left: -50%">使用float屬性,記得清楚浮動</div>

    </div>

  </div>
雖然寬度不同weiqinl 但一樣 水平居中了 使用float屬性,記得清楚浮動

5:使用table佈局,預設垂直居中

table預設垂直居中vertical-align:middle。如果還想要水平居中,那就是行內元素,新增屬性text-align: center


  <table class="parent-frame">

    <tr>

      <td>

        table預設垂直居中[vertical-align: middle]

      </td>

      <td style="text-align:center;">

        水平居中新增text-align:center

      </td>

    </tr>

  </table>
table預設垂直居中[vertical-align: middle] 水平居中新增text-align:center

6: 仿table,display:table-cell。並使用vertical-align屬性,實現垂直居中

該屬性設定元素的垂直對齊方式。

定義行內元素的基線相對於該元素所在行的基線的垂直對齊。在表單元格中,這個屬性會設定單元格框中的單元格的對齊方式。


  <div class="parent-frame" style="display: table-cell;vertical-align: middle">

    仿table: display:table-cell垂直居中vertical-align:middle

  </div>
仿table: display:table-cell垂直居中vertical-align:middle

7: 使用absolute絕對定位,配合margin使用,實現水平垂直居中

相對應於relative的絕對定位absolute,需要定寬。同時,top/bottom應該相等,並且相加不超過定寬度。 right/left也應該相等,並且相加不超過定寬。

再配合margin: auto使用


  <div class="parent-frame" style="position: relative">

    利用絕對定位,配合margin:auto自動計算外邊距。

    <div class="child-frame" style="position: absolute; top: 0;right: 0; bottom: 0; left: 0;margin: auto;">

      定寬元素,需要確定的尺寸。relative是為了給子元素定位用。

    </div>

  </div>
利用絕對定位,配合margin:auto自動計算外邊距。 定寬元素,需要確定的尺寸。relative是為了給子元素定位用。

8: 使用absolute絕對定位,配合margin的負值(negative margins)來實現水平垂直居中。

negative margins負邊距,會使結構塌陷,利用這個特點來實現。


  <div class="parent-frame" style="position: relative;">

    利用絕對定位,配合margin的負值來實現居中。

    <div class="child-frame" style="position: absolute; top: 50%; left: 50%; margin-top: -51px; margin-left: -51px;">

      負邊距來實現,水平垂直居中。需要知道該元素的具體大小

    </div>

  </div>
利用絕對定位,配合margin的負值來實現居中。 負邊距來實現,水平垂直居中。需要知道該元素的具體大小

9: 使用absolute絕對定位,配合translate 移動轉換,實現水平垂直居中

使用百分比來絕對定位一個元素,並配合使用translate,將元素移動定位居中。


  <div class="parent-frame" style="position: relative;">

    利用絕對定位,配合translate移動到水平垂直居中。

    <div class="child-frame" style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">

      不需知具體大小。支援IE9+及現代瀏覽器

    </div>

  </div>
利用絕對定位,配合translate移動到水平垂直居中。 不需知具體大小。支援IE9+及現代瀏覽器

10: 使用flex佈局,設定其屬性justify-content,align-items都為center,實現水平垂直居中

父元素使用flex佈局,並定義兩個屬性值justify-content,align-items都為center,那麼就定義為水平垂直居中

justify-content屬性定義了專案在主軸上的對齊方式。align-items屬性定義專案在交叉軸上如何對齊。


  <div class="parent-frame" style="display: flex; justify-content: center; align-items: center">

    <div class="child-frame">使用flex佈局,justify-content屬性定義了專案在主軸上的對齊方式。</div>

    <div class="child-frame">

      align-items屬性定義專案在交叉軸上如何對齊。 兩個屬性都居中,則水平、垂直居中對齊

    </div>

  </div>
使用flex佈局,justify-content屬性定義了專案在主軸上的對齊方式。 align-items屬性定義專案在交叉軸上如何對齊。 兩個屬性都居中,則水平、垂直居中對齊

11: 利用flex佈局,配合margin:auto使用,實現水平垂直居中。

父元素使用flex佈局,子元素使用margin: auto


  <div class="parent-frame" style="display: flex;">

    <div style=" margin: auto;">父元素使用flex佈局,子元素配合margin:auto使用</div>

  </div>
父元素使用flex佈局,子元素配合margin:auto使用

[完]

相關推薦

htmldiv使用CSS實現水平/垂直居中多種方式

CSS中的居中,在工作中,會經常遇到。它可以分為水平居中和垂直居中,以下是幾種實現居中的方式。 git 檢視原始碼 配合線上預覽,效果更佳 以下例子中,涉及到的CSS屬性值。 .parent-frame { width: 200px; height: 200px;

css實現水平垂直居中的幾種方式

css水平垂直居中水平居中(1)使用inline-block+text-align<div class="parent"><div class="child">demo</div></div> .child {

塊級子元素在父元素實現水平垂直居中

原始碼: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> &l

如何讓高度自適應的div的文字水平垂直居中

weight pos overflow 最大 高度 absolut abs 自己 left 1.在做數據展示的時候,因為後臺沒有數據,為了提示用戶沒有數據,自己手寫了一個div中間顯示一個“暫無數據的字樣”, 然後控制顯示和隱藏,這樣方法有兩種: 第一種:設置display

css實現水平垂直居中方法總結

form 位置 absolute div 技術 .com 完成 flex image 方法一:使用position 元素已知寬度 <div class="box"> <div class="content"></div> <

CSS實現水平垂直居中的n種方式

要實現垂直居中的效果看似很簡單,實則暗藏玄機,本文總結了一下CSS實現水平垂直居中的方式大概有下面這些,本文將逐一介紹一下,我將本文整理成了一個github倉庫,歡迎大家star僅居中元素定寬高適用 absolute + 負marginabsolute + margin autoabsolute + cal

CSS實現水平垂直居中的1010種方式

轉載自:CSS實現水平垂直居中的1010種方式   劃重點,這是一道面試必考題,很多面試官都喜歡問這個問題,我就被問過好幾次了 要實現上圖的效果看似很簡單,實則暗藏玄機,本文總結了一下CSS實現水平垂直居中的方式大概有下面這些,本文將逐一介紹一下,我將本文整理成了一個github倉庫,歡迎

transform:translate(-50%,-50%)實現水平垂直居中

translate()函式是css3的新特性.在不知道自身寬高的情況下,可以利用它來進行水平垂直居中.。 當使用:top: 50%;left: 50%;, 是以左上角為原點,故不處於中心位置  translate(-50%,-50%) 作用是,往上(x軸),左(y軸

css實現水平垂直居中方法

html: <div class="box box1"> <span>垂直居中</span> </div> 法一: .box1{ display: table-cell; vertical-align: mi

CSS實現水平垂直居中的10種方式(史上最全)

劃重點,這是一道面試必考題,很多面試官都喜歡問這個問題,我就被問過好幾次了 要實現上圖的效果看似很簡單,實則暗藏玄機,本文總結了一下CSS實現水平垂直居中的方式大概有下面這些,本文將逐一介紹一下,我將本文整理成了一個github倉庫,歡迎大家star 僅居中元素定

CSS實現水平垂直居中的1010種方式(史上最全)

劃重點,這是一道面試必考題,很多面試官都喜歡問這個問題,我就被問過好幾次了 要實現上圖的效果看似很簡單,實則暗藏玄機,本文總結了一下CSS實現水平垂直居中的方式大概有下面這些,本文將逐一介紹一下,我將本文整理成了一個github倉庫,歡迎大家star 僅居中元素定寬高

CSS實現水平垂直居中

如何用CSS實現盒子的水平垂直居中在實際工作和麵試中都常有出現,在此做一次總結: 1.定位,父相對,子絕對,返回自身寬高的一般。需要知道子元素的寬高 <style> *{ padding: 0; margin: 0; } .box{ w

用JQuery使列表的圖片水平垂直居中顯示

像案例中心這些放置小LOGO的地方,有些logo圖片的尺寸都無法做到一致,也沒功夫用PS統一尺寸,這時候可以使用line-height+text-align: center來自動居中, 在不使用line-height的情況下,用text-align: center和JS使小圖片自

你知道CSS實現水平垂直居中的第10種方式嗎?

你知道CSS實現水平垂直居中的第10種方式嗎? 僅居中元素定寬高適用: absolute + 負 margin absolute + margin auto absolute + calc 居中元素不定寬高: absolute + transform li

bootstrap 模態框(modal)實現水平垂直居中顯示 含具體分析

歡迎來到Altaba的部落格  2017年1月22日        眾所周知,bootstrap是一款非常實用的CSS框架(主要用於樣式的快速搭建),由於其簡潔,美觀,快捷,響應式等特點備受大家喜歡,但是其本身也是存在很多bug,當應對與具體的業務邏輯的時候往往達不到細節要

跬步-CSS實現水平垂直居中

CSS實現居中,無論在實際開發和麵試都是常見的內容。 本文總結了實現居中常見的幾種方式,包含寬度已知/未知及相容性的要求。 <style> .pn { width: 500px; height: 500px;

-webkit-box 實現水平垂直居中

1.  display: -webkit-box;  使用flexbox 佈局   -webkit-box-pack: center;  實現容器內容垂直居中   -webkit-box-align: center;  實現容器內的內容水平居中    -webkit-box

WEBKIT BOX 實現水平垂直居中

display: -webkit-box;  使用flexbox 佈局   -webkit-box-pack: center;  實現容器內容垂直居中   -webkit-box-align: center;  實現容器內的內容水平居中      -webkit-box-o

實現水平垂直居中的4種解決方案

1.基於表格樣式 將要使內容居中的外層容器元素的display設定成table,內層內容塊使用table-cell,然後分別設定水平和垂直居中: /*表格方案*/ #table-father{

LinearLayout 設定button水平垂直居中

一共巢狀兩層linearlayout。最外層linearlayout設定內部垂直排列,之後設定第二層linearlayout設定水平居中,內部水平排列。設定第二層linearlayout寬度為wrap_content,高度為match_parent,以為寬度為所