小伙伴們每次在寫網頁時會經常遇到需要將元素垂直或水平居中的時候,往往面臨著方法的選擇,而各種方法有的簡單,有的困難,還有的有一些坑,在選擇方法時我們應該怎么做才能不走彎路呢?
話不多說,現在就來分享我的一些方法,以我們最常見的網頁為例。
上圖網頁中,紅框部分內的左右元素都是水平居中顯示的,其中既有大小不一的文本又有圖片,面對這種情況只要我們解決其中一個,另外三個就很簡單了,那么這一個我們應該怎么處理呢?
水平居中方法:
對于元素水平居中常用我們有二種辦法:
方法一:text-align:center文本在容器里水平居中,讓inline與inline-block在容器里水平居中,text-align添加給父元素。
方法二:margin: 0 aut0; 讓一個有寬度的塊元素在容器(父元素)里水平居中,margin: 0 auto添加給當前元素。
(除此之外如果知道詳細的布局數據。也可以根據情況手動設置margin或padding等元素調整,不過不建議使用,有毒副作用)
圖片:
首先是圖片,在選擇方法之前,我們應該知道圖片的類型是inline-block類型,在選用方法時對于經常使用方法二的人就需要注意,margin: 0 auto;的適用對象是有寬度的塊元素,圖片本身自然有寬度,但并不是塊元素,需要先將其通過display: block;將圖片轉化為塊元素才能使用方法二。
相比而下,方法一就很簡單了,無需轉化元素類型,直接在父元素內使用該屬性即可。
文本:
其次是文本,文本的嵌套既有使用inline類型父元素嵌套的,又有使用block類型嵌套的。針對不同的情況,我們選用的方法也不同。
1. 嵌套inline類型的父元素,若想水平居中則在父元素下添加text_align:center;
2. 嵌套block類型的父元素,若想水平居中則在本身元素下添加margin: 0 auto;
垂直居中方法:
方法一:line-height:行高高度等于容器高度,只能實現單行文本在容器里垂直居中,line-height添加給容器。
方法二:vertical-align: middle;使一個inline-block類型的元素垂直居中。
方法三:通過定位,為需要垂直居中的元素設置absolute類型的定位,然后給父元素設置relative類型的定位,然后
或者:
即可。
方法二有毒,需要4個條件!!!
方法二的條件:
1. 給當前元素在結構上添加一個弟弟元素(必須和當前元素寫在一行上)。
2. 給當前元素和弟弟添加display:inline-block;
3. 給弟弟添加height與父元素同高;
4. 給當前元素和弟弟元素添加vertical-align:middle;
所以對于文本,我們使用方法一簡單方便。
對于元素類型為inline-block的圖片,我們使用方法二或方法三都可以。
對于block類型,我們就使用方法三。
再回到我們的網頁,其實還是水平居中用的較多,水平居中設置完畢后,垂直方向的距離可以用margin與padding進行調整,這樣很快就寫好了。
其實最主要的合適頭腦清晰,合理選擇方法,選對了就會寫的順利,否則選錯方法就這一堆堆的坑填都填不完。
更多關于“前端培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學,課程大綱緊跟企業需求,更科學更嚴謹,每年培養泛IT人才近2萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。
注:本文部分文字和圖片來源于網絡,如有侵權,請聯系刪除。版權歸原作者所有!