搜尋
首頁web前端css教學css讓容器水平垂直居中的7種方式

css讓容器水平垂直居中的7種方式

May 21, 2017 am 10:31 AM
css垂直居中水平

這篇文章主要為大家詳細介紹了css讓容器水平垂直居中的7種方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

這種css佈局平時用的比較多,也是面試題常出的一個題,網路上一搜一大丟,不過還是想自己總結一下。
這種方法比較多,本文只總結其中的幾種,以便加深印象。
效果圖都為這個:

方法一:position加上margin


XML/HTML Code複製內容到剪貼簿

  1. #p #class ="wrap">  

  2.     #p class="center">p>  


p>  

  1.    #CSS Code複製內容到剪貼簿 /**CSS**/ .wrap { width

  2. 200px
  3. height200px#background yellowpositionrelative;   } .wrap .#center { width100pxheight100pxbackgroundgreen##; marginautoposition

  4. absolute
  5. left

    : 0; 
  6. right

#right

: 0; 

top: 0; #bottombottom

: 0;   


#}  

}  
  1. 相容性:主流瀏覽器皆支持,IE6不支援

  2. #方法二:
  3. diaplay:table-cell

    XML/HTML Code複製內容到剪貼簿

  4.   ###pclass# #"wrap">  

  5. #     

    p class= "center"

  6. >
  7. p

>
  

  1. p>  

    ###  ############################ #############CSS Code######複製內容到剪貼簿#################/*&/ ### .wrap{ ###width###: ###200px###; ###height###: ###200px####; ###background###: ###yellow ###; ###display###: ###table-cell###; ###vertical-align###: ###middle###; ####text-align###: ###center###;   ####
  2. } .centerdisplay#: inline-block#vertical-alignmiddlewidth100pxheight100pxbackground# : green;   

  3. }   

  4. ##  

#相容性:由於display:table-cell的原因,IE67不相容

方法三:position加transform


XML/HTML Code複製內容到剪貼簿

  1. #  

  2. p class="wrap">  

  3.     

    p class="center"> p>  

  4. #p>  

  5.   


#CSS Code複製內容到剪貼簿

  1. /* css */ .wrap { #positionrelativebackgroundyellowwidth200pxheight 200px;} .center { positionabsolutebackground##: greengreen# top:50%; left:50%; -webkit-transform:translate(-50%,-50%); transform:translate(-50%,-50%); width

  2. 100px
  3. height

  4. 100px
  5. ;   

}   

  

相容性:ie9以下不支援transform,手機端表現的比較好。


方法四:

flex;align-items: center;justify-content: center

  1. ##XML/HTML Code

    複製內容到剪貼簿

  2.   p 

    class
  3. =
  4. "wrap"

    #>     #p class="center"#>

  5. p

    >  ##


####################################################。 p######>###  ############  #########################CSS Code ######複製內容到剪貼簿######
  1. /* css */ .wrap { backgroundyellowwidth 200pxheight200pxdisplay: flex; align-items: center -contentcenter;   

  2. } .

    center { #background greenwidth100pxheight100px;   

  3. #}

  4.   

行動端首選

方法五:display :flex;margin:auto


#XML/HTML Code複製內容到剪貼簿

  1. #  

  2. #p  class="wrap">  

  3.     

    ## #p class="center">p> ;  

  4. #p>  


#CSS Code#複製內容到剪貼簿

  1. ##/* css */

     .wrap { backgroundyellowwidth200px#; height

  2. #1

    display: flex;    } .center { #backgroundgreenwidth100pxheight

    100px
  3. #margin

    auto
  4. #;
  5. }   

  移動端首選


方法六:

純position

  1. #XML/HTML Code

    複製內容到剪貼簿

  2. #  

  3. ## p 

    class
  4. =
  5. "wrap"

    >
  6.   


    

#p class

=###"center"######>###########p###### >###  #####################p######>###  ######################################################################## ###  ########################CSS Code#######複製內容到剪貼簿######
  1. /* css */ .wrap { backgroundyellowwidth 200pxheight200pxpositionrelative;   

  2. #} /**方法一**/ .center { backgroundgreenposition#: # absolutewidth100pxheight100px#; left

  3. #如果111 ##; top50px;         #} /** 方法二**/ .center { backgroundgreen

  4. position
  5. absolute

  6. width
  7. 100px

  8. height

100px

left
##: 50%; 
top
#: 50%; 
margin-left
:-
50px

margin-top

:-50px;   


}     

  1. #相容性:適用於所有瀏覽器方法六中的方法一計算公式如下:

    子元素(conter)的left值計算公式:left=(父元素的寬- 子元素的寬) / 2=(200-100) / 2=50px;
  2. 子元素(conter)的top值計算公式:top=(父元素的高- 子元素的高) / 2=(200-100) / 2=50px;
  3. 方法二計算公式:

    left值固定為50%; 子元素的margin-left= -(子元素的寬/2)=-100/2= -50px;top值也是一樣,固定為50%子元素的margin-top= -(子元素的高/2)=-100/2= -50px;#方法七:相容於低版瀏覽器,不固定寬高

  4. XML/HTML Code複製內容到剪貼簿   

  5. ###pclass# #"table">  #    

     
  6. class
  7. =

    "tableCell">  

    #        
  8. #ofclass##p

    #class#1 #="content"
  9. >

    不固定寬高,自適應

p

>

    

  1. #p

    >  

    ############################ #######p######>###  ############  ################################################################# ########CSS Code######複製內容到剪貼簿##################/*css*/### .table { ###height###: ###200px###;###/*高度值不能少*/### ###width###: ###200px###;###/ *寬度值不能少*/### ###display###: table; ###position###: ###relative###; ###float####:###left## #; ###background###: ###yellow###;   ####
  2. } .tableCell { displaytable-cellvertical-alignmiddlevertical-alignmiddle

    text-align
  3. center

    ;               *> 10px;   

  4. #    *top: 50%;   

  5. ## *

    left: 50%;   

  6. #} .

    content {   

  7. #    *

    #position    *

    #position
  8. :
  9. relative

    ;   

  10.     *
  11. top

    : -50%;       *#left: -50%; 

    background
  12. green

    ;   

  13. }   

##}   

#  


暫時總結上面的七種,這個方法太多,其實只要習慣了其中的一兩種就夠用了。

總結如果是行動端,那麼用方法四和方法五是比較方便的。而且支援不固定寬高的情況,快、準、狠

也就是用flex; align-items: center; justify-content: center;
  1. ##XML/HTML Code

  2. 複製內容到剪貼簿
  3.   

  4. p
  5.  

    class="wrap"#>     #p class="center"

  6. #>
  7. p>  

  8. ##


  1. #。 p>    

  2. #CSS Code 複製內容到剪貼簿/* css */ .wrap { background

  3. yellow
  4. width

  5. #200px
  6. height

  7. #200px

display

: flex align- items: 

center

justify

-contentcenter;   

  1. #} .center { 

    background
  2. green

    width100pxheight100pxheight#: 

    100px
  3. ;   
  4. }     或display:flex;margin:auto; XML/HTML Code

  5. #複製內容到剪貼簿


## ####  ###################  #############    ################p######>###  ##################################################################################### #############p######>###  ############  ########### ########

CSS Code複製內容到剪貼簿

  1. /* css */ .wrap { backgroundyellowwidth200pxheight200pxdisplay : flex;   

  2. } .center { backgroundgreen#width##green#width##green#width##green#width100px

  3. height
  4. 100px

  5. margin
  6. auto

    ;   


  1. ##1
  2. #}   
  3.   #如果是PC端,要考慮相容性的話。方法六是不錯滴,也就是純position。

  4. XML/HTML Code
  5. #複製內容到剪貼簿

  6.   #

    p
  7.  
  8. class

    #class
  9. =
"wrap"


>

  

#    

    p
  1. class ="center">#p>  

  2. ##p>    

  3. #CSS Code#複製內容到剪貼簿##/* css */  .wrap { backgroundyellowwidth200px#; height#1 positionrelative;   

  4. /**方法一**/
  5.  .
  6. center

     { 

    background
green

position

absolute###; ####width###: ###100px ###; ###height###: ###100px###; ###left###: ###50px###; ####top###: ###50px## #;     ############     ###########} ###/**方法二**/### .####center### { ###background###: ###green###; ###position###: ###absolute###; ###width###: ####100px####; ###width###: ####100px####; ## #height###: ###100px###; ###left###: 50%; ###top###: 50%; ####margin-left####:-### 50px###; ###margin-top###:-###50px###;   ###########}   ############  # ###########如果PC端的中間的元素高度不固定,那麼就用方法七即可,程式碼就不複製了。 ######這種css元素垂直的如果真的要總結起來,應該有十幾二十幾種。不過也沒必要全部掌握吧,只要大概了解一些,用起來沒有副作用就好。 ###

以上是css讓容器水平垂直居中的7種方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
有點提醒您偽元素是孩子,有點。有點提醒您偽元素是孩子,有點。Apr 19, 2025 am 11:39 AM

這裡有一個帶子元素的容器:

菜單具有'動態命中區域”菜單具有'動態命中區域”Apr 19, 2025 am 11:37 AM

飛翔的菜單!您需要在第二個菜單中實現懸停事件以顯示更多菜單項的菜單,即您在棘手的領域中。一方面,他們應該

通過Webvtt改善視頻可訪問性通過Webvtt改善視頻可訪問性Apr 19, 2025 am 11:27 AM

“網絡的力量在於其普遍性。每個人的訪問無論殘疾是一個重要方面。” - 蒂姆·伯納斯 - 李

每周平台新聞:CSS :: Marker偽元素,預先渲染的Web組件,向您的網站添加Webmention每周平台新聞:CSS :: Marker偽元素,預先渲染的Web組件,向您的網站添加WebmentionApr 19, 2025 am 11:25 AM

在本週的綜述中:datepickers正在讓鍵盤用戶頭痛,一個新的Web組件編譯器,有助於與Fouc進行戰鬥,我們終於獲得了造型列表項目標記,以及在您的網站上獲得網絡攻擊的四個步驟。

使寬度和靈活的物品一起玩得很好使寬度和靈活的物品一起玩得很好Apr 19, 2025 am 11:23 AM

簡短的答案:您可能要尋找的是彈性折射和彈性基礎。

位置粘性和桌子標頭位置粘性和桌子標頭Apr 19, 2025 am 11:21 AM

您可以位置:粘性;一個

每周平台新聞:HTML在搜索控制台,全局腳本範圍中的HTML檢查,Babel Envs添加默認查詢查詢每周平台新聞:HTML在搜索控制台,全局腳本範圍中的HTML檢查,Babel Envs添加默認查詢查詢Apr 19, 2025 am 11:18 AM

在本週的Web平台新聞世界中,Google搜索控制台可以更輕鬆地查看爬行的標記,我們了解到自定義屬性

Indieweb和網絡企業Indieweb和網絡企業Apr 19, 2025 am 11:16 AM

Indieweb是一回事!他們將舉行會議和一切。紐約客甚至在寫這件事:

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境