CSS中怎么設置元素水平垂直居中?


記錄怎么使用text-align與vertical-align屬性設置元素在容器中垂直居中對齊。
text-align與vertical-align雖然都是設置元素內部對齊方式的,但兩者的用法還是有略微不同的。
在討論這兩者的用法之前,我們首先需要了解元素的分類。

塊元素:獨占一行、可設寬高、標准盒模型、一般當容器使用。
內聯元素:多個元素是排在一行的,當它遇到邊緣或換行符時才會換行,它的寬高我們是定義不了的,它隨內容變化。
內聯塊元素:既有塊元素特點,又有內聯元素特點。

text-align是設置元素中文字的水平對齊方式。
它的作用對象是文本,控制文本,對塊狀元素等不起效果,只能讓塊元素里的內容(例如p標簽內的文字:讓文字在p標簽內居中)相對塊元素居中

vertical-align是設置元素的垂直對齊方式。
它的作用對象是元素;它只能作用於內聯或內聯塊元素。該屬性相對基線去進行對齊的,介紹一下基線,上圖:

也就是說基線是在元素中間靠下的位置的,而使用vertical-align屬性的時候,因為它定義內聯元素本身的基線與它所在行的基線做相應對齊的,所以在設置元素相對父元素垂直居中對齊的時候,如果在父元素中只有它一個元素,是沒辦法在父元素中進行垂直居中對齊的。這時就需要一個標尺(既同級元素),讓它相對於標尺對齊來達到居中效果。
如何設置一個元素在父元素中水平垂直居中:
1.給它的父元素寫text-align屬性;
2.要居中的元素將其類型轉為inline-block;
3.要居中的元素加vertical-align屬性;
4.添加一個“標尺”,既同級元素(span等),要居中的元素與其互相垂直居中
注意在編輯時標尺與需要居中的元素之間不能有空格回車;
標尺須加:
display:inline-block;
width:0;(目的是隱藏標尺)
height:100%(與父元素等高,中線位置既是居中位置);
vertical-align:middle;


例如:讓div1-1在div1水平垂直對齊,加上背景顏色以便區分。

<div class="div1">div1
	<div class="div1-1">div2</div><span></span>
</div>

 CSS部分:

 

*{
    margin: 0;
    padding: 0;
}
.div1{
    width: 200px;
    height: 150px;
    background: blue;
    margin: 20px 20px;
    text-align: center;
}
.div1-1{
    width: 100px;
    height: 100px;
    background: red;
    display: inline-block;
    vertical-align: middle;
}
.div1 span{
    display: inline-block;
    width: 0px;
    height: 100%;
    background: #0681D0;
    vertical-align: middle; 
}

 

效果圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM