返回列表 发新帖

div+css垂直居中的五种实现方法

314.2k 8
swmozowtfl 发表于 2015-7-9 23:15:22|湖北 | 查看全部 阅读模式
方法一:把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align属性。
8 V7 J3 @1 w, ^8 S- \* R, }结构效果如下:+ Z0 d" F0 V* y$ s: \4 K$ e
css
+ B% N0 g7 X" W7 e0 T代码如下:4 y& s) v# S  I* s/ e  Q
div#wrapper {; b7 T4 O2 u& R; ^1 m, P  K
display: table;
; ]( y6 @  M7 C, G% h& h" iwidth: 500px;' H+ R4 G2 w& l! l* s
height: 500px;
' K' d% e, ^  _background-color: #c00;
0 a2 L7 L$ F2 J7 g5 C}
! d  j) F7 ?9 p! i) w+ g" ^! Ldiv#row {
/ H8 _* N& z* v3 H$ |( h4 Idisplay: table-row;
, H8 S4 c& s( ]0 M}
4 D( }5 m! ^9 U" h; Qdiv#cell {
% c( P3 e  S! e5 l3 cdisplay: table-cell;  g5 v5 W+ A- Q6 `
vertical-align: middle;
5 I3 h' z' F, H0 ^}
- ?; {% U0 g& \5 Y; J! T  D% zhtml
0 u8 p9 x5 J; n* a' ~代码如下:
3 {4 G1 m0 ]2 O0 `$ ?; Q" \8 ]
<div id=wrapper>: q. N& R" `$ p! }* y. L: J
<div id=row>
( ^) p! w# L9 G9 B$ O$ k<div id=cell>& C- _+ C0 H+ H; ]' w: T- S9 U
if you want to sell sugar water for the rest of my life or want a chance to change the world
5 z- v  f: y: c, l, ^% F- ~# X</div> 2 N+ m/ R9 r% Y* ]
</div>
  q2 u5 \) H2 W1 ]  X! a: z: E</div>1 l+ i) T( A- `  g# h: k! N, c
优点:不用受内容高度的限制,简单实现垂直居中;& n( L( s4 G0 j4 R
缺点:不兼容ie6,7
1 M  \, h% d' d% `. R方法二:这个方法使用绝对定位的 div,把它的 top 设置为 50%,margin-top 设置为负的 content 高度。这意味着对象必须在 css 中指定固定的高度。6 X8 U/ F7 r# e7 Q+ s0 Q
结构效果如下:
+ W5 z  ]. I  b+ o2 o: s0 tcss8 [8 I/ i, }3 K! @/ h
代码如下:
' R) @6 L3 ~4 }
div#wrapper {
. _0 i% U% R% g' U6 K6 cposition: relative;
: s1 p. d* i7 a6 i- Ywidth: 500px;
8 J, Y; }% q* K4 w6 Z3 Pheight: 500px;1 A8 J7 ~' e/ J/ m7 b& X7 q# Q
background-color: #c00;% |  }+ h1 C# Q4 ], J8 Q2 Y* t
}
' m7 p7 C- T8 h4 K$ O* wdiv#content {
( @0 |9 z+ x* s3 w0 e% G; Dposition: absolute;8 {  Y# x; H' r9 X4 A1 ]* P
top: 50%;, D( H7 v" b* o+ h: N' k" D5 U
left: 0;" W+ @% M% Q6 x0 Y# g
width: 400px;, c8 ~8 ?' I( X2 \- V# x( {8 A
height: 300px;
% m/ R* ^/ e% x; gmargin-top: -150px;1 D# q- S8 C; o7 y  A' |" W) k, G
background-color: pink;
9 N. E0 \: n' m# J# ^! s2 `2 c}
  A8 T% J' ]8 ]html& {0 ?7 {; `7 b
代码如下:! ?) {; n: [% L& f
<div id=wrapper>
7 {  p0 _& }; u9 v) ^+ j4 p* b<div id=content>' m7 W# x8 B" [9 R( a2 ^
</div>/ g* F4 f6 b) c3 u* ?* f/ |
</div>
( z% n( l7 [/ k+ K+ t5 |优点:兼容性好) n2 Y& G# \0 }3 L0 y& v7 [) G9 {
缺点:必须知道内容盒子的高度才可以,有了这点限制;2 V4 e# l9 H. I5 P
方法三:这个方法和方法二的原理是一样的。废话不多说看代码* g6 u# R* d- e2 f4 g! w# [
css( b9 z- `/ K, |5 e
代码如下:* d1 T5 j! C" K9 N1 @4 y% a$ Q
.wrap {
0 _2 j- P# J" Y* k5 Y( o# H7 F0 Uheight: 500px;' F: j) r+ q5 j: `/ u) _' S
width: 500px;2 ?( k$ M" U8 \- x5 x6 G
background-color: pink;& y+ y* Q5 I7 \; P& A. `
}) X# j7 P& C# _6 ]) r) H* M4 x
.additional {
$ d3 m1 L+ m: ]# Q6 \# w0 b: Aheight: 50%;
5 r2 Q( w4 f" Q6 emargin-bottom: -120px;  m( Y% D1 y3 a2 C3 ?' G
}
! M5 g6 A, Q0 v! H#content {8 C; @2 J3 J: h+ ]" E
height:240px;' ?8 P( R6 R/ H% C7 S) j; H! X
width:70%;( E$ D) W. t2 ~- u4 ^. C7 d# p0 _* K
background-color: #000;
4 o4 l/ }- q' U" l}
3 k- G; x* K( D6 q" ?html
$ ]% F2 L+ o1 m# |, m2 y" |代码如下:% h7 F  W5 B  ~' n. J
<div class=wrap>; {1 y! w8 R4 e! u" u
<div class=additional></div>
- x. ]: T# C5 n6 j# H! m. \, S: Y<div id=content>9 R  z! C1 c0 l+ a) b1 p' ?( H
</div>
) P% f! G# O: d2 J  ^</div>
7 A0 {$ h- F, ?9 t9 [+ N优缺点和法二一样,缺点嘛多了个额外的标签;8 D7 M: o. t9 X
方法四:这个方法使用了一个 position:absolute,有固定宽度和高度的 div。这个 div 被设置为 top:0; bottom:0;。但是因为它有固定高度,其实并不能和上下都间距为 0,因此 margin:auto; 会使它居中。使用 margin:auto;使块级元素垂直居中是很简单的。
3 e9 m0 q( n6 S: j结构效果如下:: j# D% P1 X0 r7 j
css# ?4 K* v# O' f) \
代码如下:3 m. ^( X, R5 ?! w1 Y, p' |$ i
#content {
9 q% _+ V7 R" N* V/ p. Bposition:absolute;+ X4 C! J. Z) `$ k4 I
top:0;. j2 e" D4 ?  b" h
bottom:0;
$ i- P; G! y2 lleft:0;' A' I; `- E4 L, Q/ ^+ ~
right:0;* [7 c; x0 F& O+ {' q- F
margin:auto;
9 [9 F- E8 Z* U! f- B$ sheight:240px;
5 p' G1 ]' l, B% Q+ v* z( c3 {! awidth:70%;
0 l/ ?" E. @& p. sbackground-color: #000;& Z* v$ ^, E9 x" }% @
}
3 ^8 t2 v! F0 f# u6 [  Q% Ehtml7 i3 z  C( g  a
代码如下:$ [; t" F# \9 [: U2 U$ W! K
<div id=content>
9 @5 F; f. m, B9 mcontent here</div>
) X5 {5 Q: u6 j: ?优点:非常简单
# p4 w' I4 G& t: a) w缺点:不兼容ie6,7* S2 d4 n$ F1 O, v6 i9 V# l
方法五:这个方法只能将单行文本置中。只需要简单地把 line-height 设置为那个对象的 height 值就可以使文本居中了。这个就不用实例了,您你看就明白;+ Y2 f- m9 M% J7 m

' t% K( w) x4 F, K更多网页制作信息请查看: 网页制作

回复|共 8 个

wwdu926a 发表于 2016-1-19 19:43:48|INNA | 查看全部
杂觉滴~` 你~~` 嘿嘿 这个想法不该从你的脑瓜儿出来拉~`
buingeEvineus 发表于 2016-1-19 19:43:48|德国 | 查看全部
什么啊
gevaemaidovef 发表于 2016-1-19 19:44:32|约旦 | 查看全部
老大,我好崇拜你哟
seazvyt 发表于 2016-2-23 18:41:14|INNA | 查看全部
小手一抖,经验到手!手拿酱油,低头猛走!酱油党路过,杜绝零回复
alapScady 发表于 2016-2-23 18:41:32|日本 | 查看全部
不为楼主的标题所吸引,也不是被贴子的内容所迷惑。
seazvyt 发表于 2016-2-23 18:41:54|美国 | 查看全部
本人是文盲,以上内容文字均不认识,也看不懂是什么意思.
Acropozelan 发表于 2016-2-23 18:42:44|美国 | 查看全部
我又回复了
alapScady 发表于 2016-2-23 18:42:50|英国 | 查看全部
俺灌的不是水,是寂寞啊!

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

得知互动是一个融创意、设计、开发、营销、生活、互联网于一体的专业交流分享平台。
Copyright © 2026 站长技术交流论坛|互联网技术交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表