方法一:把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align属性。
4 A X% c6 j+ v, J# C结构效果如下:, D. t X; f: }0 q' R$ [
css
) `, F# u" g) {6 }: b8 T( t代码如下: V: R. X4 A9 D2 S, o o! c
div#wrapper {
. J/ a7 `9 P) m4 E5 K0 Z0 Wdisplay: table;
' T" @6 s2 I% q6 y5 ?8 S# Bwidth: 500px;7 E; e, O- U. J9 _' Y) Y
height: 500px;
4 Z3 s& o1 M0 ]background-color: #c00;( r o( l5 ]- N! q/ c O5 G
}8 _* {3 S$ F. ?+ ]
div#row {
* o% V$ j1 j; V+ kdisplay: table-row;/ ~; F+ p% L9 n( ^
}2 L# T: N$ l! Z! I$ @
div#cell {: I" w, F; k" m( R' F( I8 b
display: table-cell;. `, H+ r0 O$ J3 _3 n, C
vertical-align: middle;" f, z$ M; A% W- J2 E6 O1 V: L
}
1 T2 w) I; o# ^% B6 _9 Mhtml& i6 S7 S, y! [
代码如下:) ^) q/ c( u4 L0 m# q* Z. E# T
<div id=wrapper>! F& t, W, d' A3 C
<div id=row>
- m6 h- e6 S) Y7 e1 b$ O<div id=cell>
6 I8 {. R! y* b7 f8 K4 c6 I! qif you want to sell sugar water for the rest of my life or want a chance to change the world ; @: x+ P3 [3 y
</div> - b7 Q2 d5 \8 d5 n9 v' k# L" K
</div>
) p7 B& h, \& X, f% i6 W+ R$ `</div>% u1 `/ h o- d/ q* I: P6 P `
优点:不用受内容高度的限制,简单实现垂直居中;
1 @* M$ T$ ]3 D9 p& L$ v1 k2 L缺点:不兼容ie6,7
$ j& g1 m1 H& ~1 L方法二:这个方法使用绝对定位的 div,把它的 top 设置为 50%,margin-top 设置为负的 content 高度。这意味着对象必须在 css 中指定固定的高度。
- W9 ]2 {3 j0 Q# i结构效果如下:
: I) P) m( U1 b Xcss
4 U/ o; O" w+ C- k2 p' Q代码如下:9 W, C9 A; ?' `1 b( A3 T% F% V4 q
div#wrapper {0 P8 d: U/ c, ^* u
position: relative;& O. D7 l9 z5 h* a/ Q
width: 500px;; u- D$ j$ ?4 C" P
height: 500px;
* b7 q1 i) x6 U* wbackground-color: #c00;7 d. b) y t9 m* p" V4 T) g* U8 N8 Y
}6 X/ D+ q& f' Z2 M/ E
div#content {
# H6 Q" H* V# |position: absolute;4 X; k& @* ?" V: t7 A# x
top: 50%;
" t( [: A0 M$ U) d1 dleft: 0;
( p v& K$ a1 I7 H" t7 uwidth: 400px;
n* f; B* W/ \8 ?3 G: c* i* n; K9 |, Yheight: 300px;' b2 q- I1 J+ R% l. h
margin-top: -150px;
3 M! D! l2 y" J7 B( Rbackground-color: pink;
0 C) O! |. i5 R9 f6 e+ S}7 I6 e0 i1 P; J& s8 `
html
* m! K" i: q% O4 _9 \代码如下:
, a7 T( N, p8 x% L. X: j& U% `- ]<div id=wrapper>1 c( s1 K& X9 }3 h8 s0 q
<div id=content>
0 t0 v( W1 A9 y: ]+ T</div>
' Z3 K$ L- C. O2 B K# W& H: m</div>
# G, B. T! ?# }3 F优点:兼容性好
$ s' ]4 ^# m7 Y9 `缺点:必须知道内容盒子的高度才可以,有了这点限制;
9 Y' w+ t C% ]) O0 O! E4 H5 f( ?方法三:这个方法和方法二的原理是一样的。废话不多说看代码
; c7 G. E2 q& ~4 Ncss
2 V2 E$ m. i4 K代码如下:
' q$ f+ @: X u.wrap {
5 ~, H3 d7 E$ M1 n% B# Pheight: 500px;
7 v0 O+ S" u3 I- S; u6 e" Kwidth: 500px;7 k: X* |. L V: f3 f4 \
background-color: pink;) B" M E/ ~& y+ G% N0 [
}: F* i* w6 \4 L2 w# T1 O
.additional {7 c+ w# P3 A+ k6 x, G" O i% t
height: 50%;! n7 X) x. t9 v7 |
margin-bottom: -120px;2 n+ h1 O) S& {" F9 L5 J* w+ W
}
5 x* x7 r+ b( `- j6 E3 t#content {
) C) R8 A. @9 }# o1 x0 }height:240px;, l6 f1 ` M. {7 o; a; j; ~
width:70%;
. A0 z: m" Q4 K* D# I2 s, I+ s6 k2 Ubackground-color: #000;2 R2 P" Z) X9 L" e+ I6 [9 B
}- T7 p( h7 M% |1 c" m3 I) x3 z
html
% J% Y3 g, |! I) {8 x7 ?代码如下:8 Y; u3 [: p6 B) @# j& ]$ _
<div class=wrap>- x, U2 r1 n& w4 a t/ N
<div class=additional></div>
8 F+ @" t, C9 g2 W( X* [# _. Z<div id=content>$ t% K' o9 V" @' |; }
</div>
- v$ F4 ?- y0 p8 k3 B. F</div>' T. F1 w2 I- Q1 I7 K- @* A
优缺点和法二一样,缺点嘛多了个额外的标签;& Z2 x! w& F& p4 K& _
方法四:这个方法使用了一个 position:absolute,有固定宽度和高度的 div。这个 div 被设置为 top:0; bottom:0;。但是因为它有固定高度,其实并不能和上下都间距为 0,因此 margin:auto; 会使它居中。使用 margin:auto;使块级元素垂直居中是很简单的。- q7 }) X" N* r8 H
结构效果如下:
7 E5 ?. f6 k7 o; m7 Ncss
! {4 _: Y8 {( K& Q2 a0 Y0 `代码如下:
* z! h& Q0 \. y/ k/ p1 P#content {
! r4 d, q+ Q* @* _8 Pposition:absolute;
4 D3 [& Y' d r5 h3 mtop:0;
" h; X- x9 R( E0 Y7 Tbottom:0;9 }! \, C5 N1 Y8 |1 Y6 \* q, v
left:0;
5 f+ @8 Q/ s3 zright:0;% o4 i( j& Q+ D7 p* [# B6 O
margin:auto;! L1 \- V" t W; k
height:240px;. w4 J! R- [$ J6 R# V. H
width:70%;, _, g. P1 q. _% O
background-color: #000;
* P; z& X6 Y; Z! K/ ^# Q}
* Q! @& z% l$ o7 [8 Z; M+ C' @" fhtml
8 j' F* p! H: `' ^ i8 ~0 F代码如下:) N9 S# C% l, Y9 Z- D
<div id=content>
# P9 a a* w3 R8 z' M/ Mcontent here</div>, A! E( O1 @9 R: j, y0 S
优点:非常简单) }; t, g* D. |
缺点:不兼容ie6,7
; c. n- X% P" b方法五:这个方法只能将单行文本置中。只需要简单地把 line-height 设置为那个对象的 height 值就可以使文本居中了。这个就不用实例了,您你看就明白;% L: s0 Z, F; [7 p6 ^: ]' P
/ w/ |: S) H/ D0 P) m+ V更多网页制作信息请查看: 网页制作 |
|