返回列表 发新帖

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

314.3k 8
swmozowtfl 发表于 2015-7-9 23:15:22|湖北 | 查看全部 阅读模式
方法一:把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align属性。- N: R( A% O8 j- ^
结构效果如下:9 _/ t7 t  |8 h9 R% U) M% W1 k( b+ w
css" O& Y' y5 p4 t- d# [' c
代码如下:
! i, Y/ B* t8 ^3 ^# d* D
div#wrapper {8 J, m5 M/ I$ W/ a& P) P
display: table;) i: p1 m% c! n. H( v4 C6 r
width: 500px;
" Z  q+ s0 i6 @! Y" G! Sheight: 500px;; Y2 H4 M1 w5 H! b1 Z- y# }- _* Q) k! f
background-color: #c00;$ h3 N$ N! X) k( x
}
$ N1 p. s( h, q+ Cdiv#row {
5 A: x/ T, i5 u/ R3 M+ M1 a2 ~display: table-row;* W9 l, O# R* b% W, d
}
4 ?& e5 j: \2 p. j  |1 fdiv#cell {) u" t0 G. a8 b7 ]; f
display: table-cell;
6 R) ]* x% A8 zvertical-align: middle;
/ G# A# x. r5 g5 H}
  s7 I, j4 ?" k8 F. P4 \3 _html
5 ?9 M, h( \: z6 e$ R3 n! [代码如下:, n3 L% X* T5 j4 \, S
<div id=wrapper>. @1 l, s" R# K6 _
<div id=row>6 e7 A4 ]% J% u9 \3 B) m" q) w7 w
<div id=cell>
# k* O3 V) _) _3 E" Y/ M8 \4 }if you want to sell sugar water for the rest of my life or want a chance to change the world 7 p( \7 r1 m  A- u& W# Z
</div>
* e! H0 m. B$ l1 }5 ^! d1 l. c7 h5 k</div>  P  ^  I2 h4 M/ Y
</div>1 n+ S& ~& q, [
优点:不用受内容高度的限制,简单实现垂直居中;
  v- g9 A" ?8 c6 v7 j: ?1 |  ]! W5 Q缺点:不兼容ie6,7- U3 |' |* F& n9 G
方法二:这个方法使用绝对定位的 div,把它的 top 设置为 50%,margin-top 设置为负的 content 高度。这意味着对象必须在 css 中指定固定的高度。# P( u* E% V* z/ G
结构效果如下:
) r6 ^/ p0 ^6 J) I! g" ycss  t- O% b  E* g
代码如下:3 x  E7 ]! C. u3 V
div#wrapper {
( M( c6 |% S. Y) ^( v$ mposition: relative;, v3 \' A# o6 s
width: 500px;9 O* Z; ]1 D+ E8 Y- L' }" L+ b+ Z
height: 500px;
- ]. K. D; R  g3 }$ `background-color: #c00;
4 C7 Z" z, a+ L7 ]4 d2 o# i}
  y/ t! ^7 P! U/ R1 T6 ]' wdiv#content {
- Y  w1 [( Z( Zposition: absolute;
9 v1 s4 s$ U$ L( k# S7 d7 Ctop: 50%;
2 m2 _: U7 D9 c4 [  V4 Lleft: 0;
, z, g9 G- k; `/ B& `width: 400px;/ i4 {( d0 W" W- d
height: 300px;; U* M; _0 _% t; {
margin-top: -150px;' T7 c" [9 V+ H( J- T5 ~' O
background-color: pink;2 [. S8 n" g. m6 Z1 c$ [
}
% A4 l) V) b5 K' ]6 k. N8 K0 ghtml" u8 y0 H$ E. p, o
代码如下:; Y! o+ I- T$ s& u
<div id=wrapper>9 {( t4 k! G3 w  _% }; a
<div id=content>
; _+ t9 j0 L' {( L</div>
9 D7 M, N5 |: Q# @2 n) [+ q  T5 g</div>' R" P" V2 X* l
优点:兼容性好
! ~4 D* o* I: k8 ?缺点:必须知道内容盒子的高度才可以,有了这点限制;
6 C: J. g9 J- `/ y1 n方法三:这个方法和方法二的原理是一样的。废话不多说看代码0 _1 i, f( }9 P1 r
css
) k. d5 m3 s& f2 p代码如下:
4 n2 \/ s# X5 G" _2 n+ {
.wrap {1 f$ |8 {6 o8 }- K, Q
height: 500px;5 t) o5 h  X, e% A/ G: B" s6 L* i7 J
width: 500px;( l6 W' S3 O: b) P$ h8 [) Q/ q
background-color: pink;
  a& n5 V8 B- B6 a1 g* P}1 a0 o: `( P) @8 d$ b
.additional {+ b4 I1 }. Q) r: }: B& A  }2 _9 `
height: 50%;
1 @' \  s. N% x. I; o8 B0 zmargin-bottom: -120px;* {2 {/ j0 H$ x5 E
}
# v/ ^! h; N4 D9 W5 [! [5 u#content {
* O+ u' n$ Q& ~0 lheight:240px;
2 k$ \8 q# }" Zwidth:70%;! C, {# d# t. O. j/ h4 c, D
background-color: #000;, V3 g/ {0 g8 o2 i! N& W
}9 V% ?, V9 H' N4 _. ~
html
/ x% a; c! }6 t2 ]6 N* A代码如下:
4 {: w) P6 F/ r* J
<div class=wrap>) X; \2 Y2 g) `9 K4 x9 R7 n
<div class=additional></div>
3 G. X' h" C; c6 d9 b<div id=content>( ~' B) Y( k1 m6 p
</div>' H# H) t7 f+ E- F
</div>
8 a$ x( @2 n& R0 S优缺点和法二一样,缺点嘛多了个额外的标签;) Q  |# X4 n( G; |: \
方法四:这个方法使用了一个 position:absolute,有固定宽度和高度的 div。这个 div 被设置为 top:0; bottom:0;。但是因为它有固定高度,其实并不能和上下都间距为 0,因此 margin:auto; 会使它居中。使用 margin:auto;使块级元素垂直居中是很简单的。( H5 S$ F  J: s3 @
结构效果如下:6 {6 U* ]: x; h/ U1 o8 Q4 L
css
6 V3 r& y+ t( w代码如下:, a$ x/ ^' T; z
#content {) e5 h9 [1 f0 Z# [
position:absolute;+ G/ i- S, |+ @  X- E3 `; I
top:0;/ S; l% Z" m6 h* }( T+ t: T
bottom:0;
! K! k7 A; z& E4 y4 pleft:0;! Q- \3 Y5 s; h' x( c# M
right:0;
1 A! G) w, Y/ b9 P7 I- {margin:auto;3 J' ^$ N9 V8 f3 z. L7 z3 W. T! i+ O
height:240px;7 `8 p) d( L5 A4 Z1 q
width:70%;) d+ }4 [' B7 y2 p5 S
background-color: #000;
& E4 w* b3 i% _9 K9 F+ s}
! a; |7 r/ d+ o/ t% X; khtml
* n- \9 [4 c4 B0 d! e  _代码如下:
. ]- q8 g) f* K. h, @" j' f8 n+ S) J
<div id=content>
4 \9 ]2 e+ S; L- O% A* `) Zcontent here</div>% U, l. K% T( ~, s! q
优点:非常简单
* M- L) i( f& T5 K6 w2 A; X; n0 G缺点:不兼容ie6,7
4 e) `3 J; r; f8 M% ]方法五:这个方法只能将单行文本置中。只需要简单地把 line-height 设置为那个对象的 height 值就可以使文本居中了。这个就不用实例了,您你看就明白;- I5 M1 q; i# }# A% [& w
( N- |% K1 y5 h" o2 N0 s9 T- G
更多网页制作信息请查看: 网页制作

回复|共 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 得知互动-专注Ai与站长技术交流社区-Ai交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表