這篇文章主要為大家詳細介紹了css讓容器水平垂直居中的7種方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
這種css佈局平時用的比較多,也是面試題常出的一個題,網路上一搜一大丟,不過還是想自己總結一下。
這種方法比較多,本文只總結其中的幾種,以便加深印象。
效果圖都為這個:
方法一:position加上margin
XML/HTML Code複製內容到剪貼簿
#p #class ="wrap">
#p class="center">p>
- 。
p>
-
#CSS Code複製內容到剪貼簿 /**CSS**/ .wrap { width
: 200px - ;
height: 200px; #background : yellow; position: relative; } .wrap .#center { width: 100px; height: 100px; background: green##; margin: auto; position
: absolute - ;
left
: 0; right
#right
: 0;top: 0; #bottombottom
: 0;#}
}相容性:主流瀏覽器皆支持,IE6不支援
#方法二:- diaplay:table-cell
XML/HTML Code複製內容到剪貼簿
###p# class# #"wrap">
- #
p class= "center"
> - p
>
-
p>
### ############################ #############CSS Code######複製內容到剪貼簿#################/*&/ ### .wrap{ ###width###: ###200px###; ###height###: ###200px####; ###background###: ###yellow ###; ###display###: ###table-cell###; ###vertical-align###: ###middle###; ####text-align###: ###center###; #### } .center{ display#: inline-block; #vertical-align: middle; width: 100px; height: 100px; background# : green;
}
- ##
方法三:position加transform
XML/HTML Code複製內容到剪貼簿
#
p class="wrap">
-
p class="center"> p>
#p>
#CSS Code複製內容到剪貼簿
-
/* css */ .wrap { #position: relative; background: yellow; width: 200px; height: 200px;} .center { position: absolute; background##: green; green; # top:50%; left:50%; -webkit-transform:translate(-50%,-50%); transform:translate(-50%,-50%); width
: 100px - ;
height
: 100px - ;
相容性:ie9以下不支援transform,手機端表現的比較好。
flex;align-items: center;justify-content: center
- ##XML/HTML Code
複製內容到剪貼簿
-
p
class = - "wrap"
#> #p class="center"#>
- p
> ##
####################################################。 p######>### ############ #########################CSS Code ######複製內容到剪貼簿######
/* css */ .wrap { background: yellow; width: 200px; height: 200px; display: flex; align-items: center; -content: center;
- } .
center { #background: green; width: 100px; height: 100px;
- #}
方法五:display :flex;margin:auto
#XML/HTML Code複製內容到剪貼簿
#
#p class="wrap">
-
## #p class="center">p> ;
#p>
#CSS Code#複製內容到剪貼簿
- ##/* css */
.wrap { background: yellow; width: 200px#; height:
- #1
; display: flex; } .center { #background: green; width: 100px; height:
100px ; - #margin
:
auto #; - }
移動端首選
方法六:
- #XML/HTML Code
複製內容到剪貼簿
#
-
## p
class = - "wrap">
#p class
=###"center"######>###########p###### >### #####################p######>### ######################################################################## ### ########################CSS Code#######複製內容到剪貼簿######/* css */ .wrap { background: yellow; width: 200px; height: 200px; position: relative;
#} /**方法一**/ .center { background: green; position#: # absolute; width: 100px; height: 100px#; left:
-
#如果111 ##; top: 50px; #} /** 方法二**/ .center { background: green
; position - :
absolute
; width - :
100px
; height
100px
;left
##: 50%;
top
#: 50%;
margin-left
:-
50px
;
:-50px;
}
-
#相容性:適用於所有瀏覽器方法六中的方法一計算公式如下:
子元素(conter)的left值計算公式:left=(父元素的寬- 子元素的寬) / 2=(200-100) / 2=50px; 子元素(conter)的top值計算公式:top=(父元素的高- 子元素的高) / 2=(200-100) / 2=50px; - 方法二計算公式:
left值固定為50%; 子元素的margin-left= -(子元素的寬/2)=-100/2= -50px;top值也是一樣,固定為50%子元素的margin-top= -(子元素的高/2)=-100/2= -50px;#方法七:相容於低版瀏覽器,不固定寬高
XML/HTML Code複製內容到剪貼簿
-
###p# class# #"table"> #
class - =
"tableCell">
# -
>
不固定寬高,自適應
#ofclass##p
#class#1 #="content"p
- #p
>
############################ #######p######>### ############ ################################################################# ########CSS Code######複製內容到剪貼簿##################/*css*/### .table { ###height###: ###200px###;###/*高度值不能少*/### ###width###: ###200px###;###/ *寬度值不能少*/### ###display###: table; ###position###: ###relative###; ###float####:###left## #; ###background###: ###yellow###; #### -
} .tableCell { display: table-cell; vertical-align: middle; vertical-align: middle;
text-align : - center
; *> : 10px;
# *top: 50%;
- ## *
left: 50%;
- #} .
content {
- # *
#position *
#position : - relative
;
* - top
: -50%; *#left: -50%;
background : - green
;
}
##}
#
暫時總結上面的七種,這個方法太多,其實只要習慣了其中的一兩種就夠用了。
總結如果是行動端,那麼用方法四和方法五是比較方便的。而且支援不固定寬高的情況,快、準、狠
也就是用flex; align-items: center; justify-content: center;##XML/HTML Code
複製內容到剪貼簿-
class="wrap"#> #p class="center"
#> p>
- ##
#。 p>
-
#CSS Code 複製內容到剪貼簿/* css */ .wrap { background
: yellow - ;
width
: #200px - ;
height
: #200px
display
: flex align- items:center
;
-content: center;
-
#} .center {
background : - green
; width: 100px; height: 100px; height#:
100px ; } 或display:flex;margin:auto; XML/HTML Code
#複製內容到剪貼簿
CSS Code複製內容到剪貼簿
/* css */ .wrap { background: yellow; width: 200px; height: 200px; display : flex;
-
} .center { background: green; #width##green; #width##green; #width##green; #width: 100px
; height - :
100px
; margin - :
auto
;
-
##1
#} #如果是PC端,要考慮相容性的話。方法六是不錯滴,也就是純position。
XML/HTML Code#複製內容到剪貼簿
-
#
p - class#class =
>
#
- p
- #
class ="center">#p>
##p>
#CSS Code#複製內容到剪貼簿##/* css */ .wrap { background: yellow; width: 200px#; height: #1 ; position: relative;
-
}
/**方法一**/ . - center
{
background :
;
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中文網其他相關文章!

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

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


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

SublimeText3漢化版
中文版,非常好用

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Atom編輯器mac版下載
最受歡迎的的開源編輯器

禪工作室 13.0.1
強大的PHP整合開發環境