方法一:把一些 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更多网页制作信息请查看: 网页制作 |
|