小夥伴們每次在寫網頁時會經常遇到需要将元素垂直或水平居中的時候,往往面臨着方法的選擇,而各種方法有的簡單,有的困難,還有的有一些坑,在選擇方法時我們應該怎麼做才能不走彎路呢?
話不多說,現在就來分享我的一些方法,在分享之前我先查查秘籍
咳咳,下面是正式内容,以我們最常見的網頁為例
上圖網頁中,紅框部分内的左右元素都是水平居中顯示的,其中既有大小不一的文本又有圖片,面對這種情況隻要我們解決其中一個,另外三個就很簡單了,那麼這一個我們應該怎麼處理呢
水平居中方法:對于元素水平居中常用我們有二種辦法:
方法一: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類型嵌套的。針對不同的情況,我們選用的方法也不同。
方法一:line-height:行高高度等于容器高度,隻能實現單行文本在容器裡垂直居中,line-height添加給容器。
方法二:vertical-align: middle;使一個inline-block類型的元素垂直居中。
方法三:通過定位,為需要垂直居中的元素設置absolute類型的定位,然後給父元素設置relative類型的定位,然後
top:0;
left:0;
right:0;
bottom:0;
margin:auto;
或者:
top:50%;
left:50%;
margin:-NNpx 0 0 -NNpx;
/*NN為元素寬高的一半**/
即可。
方法二有毒,需要4個條件!!!
方法二的條件:
所以對于文本,我們使用方法一簡單方便。
對于元素類型為inline-block的圖片,我們使用方法二或方法三都可以。
對于block類型,我們就使用方法三。
再回到我們的網頁,其實還是水平居中用的較多,水平居中設置完畢後,垂直方向的距離可以用margin與padding進行調整,這樣很快就寫好了。
其實最主要的合适頭腦清晰,合理選擇方法,選對了就會寫的順利,否則選錯方法就這一堆堆的坑填都填不完。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!