返回列表 发新帖

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

314.2k 8
swmozowtfl 发表于 2015-7-9 23:15:22|湖北 | 查看全部 阅读模式
方法一:把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align属性。
& r3 G$ c1 `( }) e' S% F" o5 Q结构效果如下:
' g. U5 M/ x- Q, U0 p+ P% Fcss" c/ c7 u/ K+ I5 `& v
代码如下:$ c4 S1 M: s' y% v. A( G
div#wrapper {& \6 w. {/ Q4 l' ]# g
display: table;! k, I+ V* A& n& J& F
width: 500px;
9 ~* M% C) X8 s9 iheight: 500px;* b5 _) _0 z) b4 s! \
background-color: #c00;
5 ]) V1 B( Q8 Z) D) l5 C}
8 q) @& F  v7 n( x3 vdiv#row {5 U& M! y! ^5 t4 v1 e3 s% S
display: table-row;
0 {8 m- J8 u- M- C. n+ z& O) `3 z6 }# e}
% @. ]7 g$ v( C0 h9 y) ldiv#cell {
6 c/ {: r( R4 ~2 x# E0 I; adisplay: table-cell;) N1 s% x4 n5 S7 P* y7 r$ r: P) O
vertical-align: middle;+ C' G$ c9 \6 J7 g
}, G) g! l/ ]. }! h9 i
html
2 k4 `2 b" R! f4 S3 b  S代码如下:" S4 l7 v6 Y7 i' f4 S  J% g# I
<div id=wrapper>( ]6 i) {: o' ]3 w0 x6 Q7 y
<div id=row>
! C$ Q0 l3 Q% x5 m0 [! U<div id=cell>
  X  }0 \0 ^1 Pif you want to sell sugar water for the rest of my life or want a chance to change the world ( m4 u# D! ^4 b; |- a6 j1 g$ ^. `
</div>
' d: b# i% m4 W6 d6 N" \5 f</div>
1 ^- f& Z( a6 R$ y' ]/ h</div>
- D: W: V# n0 R/ r5 O优点:不用受内容高度的限制,简单实现垂直居中;
) T9 P$ l% T' ?4 B* g+ z$ e缺点:不兼容ie6,7; I' ~6 p  U# T/ m! O
方法二:这个方法使用绝对定位的 div,把它的 top 设置为 50%,margin-top 设置为负的 content 高度。这意味着对象必须在 css 中指定固定的高度。
( y" R% N5 V8 h) g4 F结构效果如下:
3 A4 b: t8 i" ^/ E; G8 O  gcss" A0 [& S+ f8 z% t0 P& u
代码如下:
7 c# s+ N. Y; {1 a/ S" n# T
div#wrapper {
9 Z& r6 r' l1 S, c/ z" fposition: relative;
' i% F) j! u; u% r/ Uwidth: 500px;# }1 d* u. f* ~, E; B
height: 500px;" w1 S- r  M. g( \" B; K* V4 C4 z# B
background-color: #c00;
% `1 a- p1 h/ @$ f* E- f}
0 w% _3 ?. Y. B5 @+ Kdiv#content {, s# H& f* A$ {9 \# j1 \
position: absolute;' f% W8 S3 M1 X( I5 L
top: 50%;
/ K8 O: F& p) R5 nleft: 0;
7 Z5 `% B- \, Fwidth: 400px;
% s5 @0 U4 I5 s+ v  T  Yheight: 300px;
+ s6 j0 M+ h1 v( z6 i. c& amargin-top: -150px;
# Q- c& f) }% _background-color: pink;
/ \" l$ c( t1 m$ B2 s/ a: R( R}! H2 K& t& K1 E& i. F
html
( D. Y6 X/ l, ?1 I1 Y代码如下:9 Z  N  S  w, b5 R7 k
<div id=wrapper>" i* V  u( k/ H( A2 w- E7 ~6 J
<div id=content>" X. V0 A+ e% x2 ^& u
</div>
1 J( G. B; T4 F$ ~</div>
& ]" \9 k$ ^# i; ^: q  t优点:兼容性好
) y3 V: u2 M, G0 I4 Q2 g' J% `1 C: N3 ]缺点:必须知道内容盒子的高度才可以,有了这点限制;. ~' ~% J- e9 d5 k8 V  X
方法三:这个方法和方法二的原理是一样的。废话不多说看代码
7 w/ S* M8 x- H+ N; a- _( Kcss& m1 h1 [( P: Q! Q
代码如下:
- I$ `) @7 G% g% D, j% ~
.wrap {  @) U4 Q/ O# F8 j1 t! e
height: 500px;0 }& ]' q5 n  J% f" b
width: 500px;# m( q, g6 U( Z" }, J/ t6 L
background-color: pink;4 E" l6 s( h1 y4 o* c2 H
}
- i1 e8 p( i* ~.additional {' V$ ?- N. m/ D9 N) j
height: 50%;
) H, h* M' [: \margin-bottom: -120px;) v) F0 x) e/ a* V+ A, z
}
) h  [, r4 R3 _, S4 w7 j$ O2 T#content {
( b+ J4 u/ p/ I% Q/ _8 m) [2 kheight:240px;1 \$ }) t% y3 C- A  U# A
width:70%;
# m9 g, L4 q% ~, b7 L7 E* T7 j0 Ybackground-color: #000;4 O& h" S0 ~  r  W" s. |: O
}" V0 r; v$ {+ G) l' h
html
* p) n" y0 C  s) o代码如下:, }+ H, M# @1 b0 f3 `0 c
<div class=wrap># E. l7 w+ G5 d* w: D2 r
<div class=additional></div>
; y- i5 M. W, P7 W<div id=content>
6 }5 @* f6 c' w- E  ~</div>
& m) I- A& l  k9 h# n- R</div>
9 y% e, R2 |& k) M/ m; g优缺点和法二一样,缺点嘛多了个额外的标签;: P; Y2 T$ n$ v3 I5 E
方法四:这个方法使用了一个 position:absolute,有固定宽度和高度的 div。这个 div 被设置为 top:0; bottom:0;。但是因为它有固定高度,其实并不能和上下都间距为 0,因此 margin:auto; 会使它居中。使用 margin:auto;使块级元素垂直居中是很简单的。  U% D2 s9 I7 F
结构效果如下:% [0 T1 Y) q* a, a
css; O, b2 G! T  l2 F
代码如下:
0 ?6 i% q7 w9 ?) y3 N8 c$ [
#content {
, v1 p1 O- o# _0 Oposition:absolute;6 G" F0 H1 r# F
top:0;- U/ x1 V- R: d4 Y1 x
bottom:0;
/ W) x9 Y: o1 [' J) R$ h8 U3 {  O  z/ Bleft:0;1 ^# F. Z! {; Y2 r/ c8 W  A
right:0;
9 n8 r( _" s* x/ Emargin:auto;% Y4 q$ r% S. a/ Q9 e8 K! D
height:240px;
# A2 g( |0 o. X  y( \width:70%;$ l: Q+ w/ M. G; X3 S( ~2 [: K; N) e
background-color: #000;2 x8 K* P1 g% x" C9 z
}
. a! ~% o/ V, U2 w) thtml& H+ [) N/ I& Z1 Q" h4 W
代码如下:1 A1 Q$ Y( |: }% R1 \4 U& r
<div id=content>( h' y* d) a- k7 B; h0 ~5 c, s
content here</div>
; _6 z2 A% l* {" W) x% w优点:非常简单
% n- F! W2 v) }# K) s# [) H缺点:不兼容ie6,7
& q9 p( w5 e1 L方法五:这个方法只能将单行文本置中。只需要简单地把 line-height 设置为那个对象的 height 值就可以使文本居中了。这个就不用实例了,您你看就明白;
4 Q! `" e& I. a! w" u* A& |
5 C6 D7 R1 N2 s, ?5 r更多网页制作信息请查看: 网页制作

回复|共 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客服 返回顶部
快速回复 返回顶部 返回列表