居中(水平居中+垂直居中)

一、水平居中。
1.最普通的(在視口或窗口中)水平居中。
先寫一個div,給它一些基本樣式。
這裏寫圖片描述

這裏寫圖片描述
此時只用設置一個屬性:margin,
這裏寫圖片描述

這裏寫圖片描述
就得到了居中的結果(沒錯,這就是凝膠物佈局,此方法必須設置元素的width)。
2.居中一個絕對定位的元素。
上述方法的元素使用默認的定位,即static,那麼當元素是絕對定位(absolution)時,就用到了這個公式:
left=(x-y)/2.
x=parent width
y=element width

這裏寫圖片描述
這裏寫圖片描述
(x-y)/2=(300-100)/2=100
於是另class爲box的元素的left:100px;即可另其水平居中。
3.居中一個寬度不定的元素。
以上兩個方法的父元素寬度必須確定,那麼當父元素的寬度不確定時,就可用此方法。公式:
x=child width;
y=x/2;
設置:
left:50%;
margin:0 0 0 -y;
這裏寫圖片描述
這裏寫圖片描述
當然,此方法也可用於子元素的寬度也不確定時:
這裏寫圖片描述
這裏寫圖片描述
二、垂直居中。
1.把元素顯示方式設置爲表格,如此就可用表格的vertical-align屬性。
這裏寫圖片描述
2.和水平居中的方法3類似,將元素的top設爲50%,margin-top設爲負的content高度的一半(如果padding不爲0,那麼margin-top爲負的content和padding的和的一半),height必須給定。
因爲高度固定,所以內容可能溢出,此時可以設置overflow:auto;這樣當內容太多,就會出現滾動條。
3.和水平居中的方法1類似,設置position:absolution;(注意:若只是設置水平居中,並不需要設置position爲absolution)把它從流中抽離出來,設置寬高,設置top:0;bottom:0;margin:auto;如此便能居中。
這裏寫圖片描述
對於這個方法爲何能居中,我個人的理解是,因爲元素有一定的高度,設置top:0;bottom:0;並不能使上下距離都爲0,於是設置了margin:auto;後爲同時滿足top和bottom的要求,就只能使其居中(兩邊一樣距離,公平、不偏心,就是這麼通俗易懂(^__^) )
4.單行爲本中,把文本所在元素的line-height設置爲該元素的height即可。僅僅適用於單行文本。可以用於小元素如按鈕文本或單行文本居中。
5.在要居中的元素前面再加一個元素(不是嵌套關係,而是同級關係),讓此元素高度爲視口的一半,再設置其margin-bottom爲負的要居中元素的高度的一半。

注:目前只想到這些,以後再想到會接着補充,也歡迎大家補充~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章