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使用
[完]
相關推薦
html中div使用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,以為寬度為所