返回列表 发新帖

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

314.2k 8
swmozowtfl 发表于 2015-7-9 23:15:22|湖北 | 查看全部 阅读模式
方法一:把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align属性。
4 j+ Q: E! [! Z' G: C: m' d结构效果如下:
" e6 F' l' w8 I: n  Z4 Acss
) C* f# b. z9 s代码如下:
+ V& s+ z; {( n
div#wrapper {
% W& U* w; x! I% s4 p5 L3 c- l$ w& Ddisplay: table;
- E9 |( `5 U, ]/ ?8 l( rwidth: 500px;9 X" ^- H3 O% m
height: 500px;
* L. u9 W4 z, J1 f' Jbackground-color: #c00;
- ~; R3 A; Q  F# }$ A) k}/ F) H3 V6 L) T, l, W, {3 V& m
div#row {5 W9 w, ?! |0 c; J, F* J: T
display: table-row;
: b# h/ v9 G6 I7 p1 _8 L) N% p2 y' Y}$ }- n" E4 v# \( _3 f4 s& n
div#cell {
# |& W/ l; ^; P' Xdisplay: table-cell;
$ W0 K2 \2 R# y. A. Q6 D5 @8 wvertical-align: middle;2 u; c3 m6 A6 ?9 s9 J; Y7 u
}
: L% d4 t6 {2 uhtml
( m2 E$ N' T! ]4 C# {代码如下:$ p" V1 J1 `) {1 J% K  S
<div id=wrapper>% {# H* U8 h0 j. @2 C  ^
<div id=row>* F- h0 v$ `# G0 ~$ [) @
<div id=cell>6 c$ q1 K6 J1 f. e5 A
if you want to sell sugar water for the rest of my life or want a chance to change the world   ?" L# s" b9 Y
</div>
) r) f4 J0 f* z. F7 O( w</div>3 v  e; b6 l0 `  s: V
</div>0 _# ?/ G9 C+ n5 ?3 ^0 A; {( f1 |
优点:不用受内容高度的限制,简单实现垂直居中;5 X. Y8 g% V8 ]
缺点:不兼容ie6,7
  e( W' c, ~8 E! n; a1 i" u2 c方法二:这个方法使用绝对定位的 div,把它的 top 设置为 50%,margin-top 设置为负的 content 高度。这意味着对象必须在 css 中指定固定的高度。3 Q2 X) }: `" [5 }8 p# H
结构效果如下:
8 f6 |7 a0 Z5 @3 O# ocss
6 l: [$ B: M. u4 N' N' u9 O代码如下:0 h' L& V  c2 R2 V2 `
div#wrapper {" v% o( ]$ a* c: [+ I5 r% F
position: relative;- l1 t8 c  P0 V' w
width: 500px;1 p7 G. l7 n# q
height: 500px;
# _+ S2 D8 Q6 {; y( l5 |' Q" p+ y3 v7 ebackground-color: #c00;0 c/ X8 v/ E  H4 W4 ]2 F: W
}$ @1 B; e$ ^, |, |9 H
div#content {* D% O2 M$ i: p& T1 v0 C
position: absolute;: Z  c1 J% y) ^$ G4 B
top: 50%;
6 s. C2 t4 X, Y8 u- {6 y: c1 bleft: 0;
! V6 p0 i2 v* j' T' Uwidth: 400px;/ w3 R" m/ n# |- @
height: 300px;
  v9 L9 Q$ ?. D& }& kmargin-top: -150px;% N* E/ p; S4 \2 F9 X
background-color: pink;
' j" [4 ^1 k. n$ S}
8 c% B$ Z0 o6 y0 _+ \  Uhtml
, ]% k: R' E, `/ q) F% @+ W1 B代码如下:: P% e. \# O8 o+ p7 C. x
<div id=wrapper>( D' K9 s* C4 X( z6 s4 e
<div id=content>
- t  p9 L% D9 c- u+ e</div>6 M+ n: I* j5 J. ?) z7 H
</div>2 J% [3 c- q- g" Y. W" j- v  J
优点:兼容性好# ~5 H2 s: `. J. S2 m7 b8 B0 N0 z
缺点:必须知道内容盒子的高度才可以,有了这点限制;
* ?, p( Q9 \: O! D方法三:这个方法和方法二的原理是一样的。废话不多说看代码
6 ^  j6 _5 D4 i* `* }9 l7 q2 Q( ^css
& U" ]7 M" O% s% o9 V代码如下:$ q8 ~. P6 f6 s  G, S7 g
.wrap {8 R$ O) q$ C4 G$ h7 D: C
height: 500px;* Y2 S* p+ V! [5 U. K3 \9 v
width: 500px;- n1 Q9 h# s, h$ o7 l
background-color: pink;
8 t7 J! j1 y& q" z$ x" }}
6 O: ]9 V. S+ s5 O.additional {
1 C+ i2 Q- i5 t% Q. W2 P0 H. I/ Z# r2 r7 @height: 50%;
( b1 ^- a/ e6 \; Umargin-bottom: -120px;+ n+ k; E' O2 O( t4 d" i
}9 J6 h( ?7 F, u3 G
#content {% e% y7 F1 |7 L* A3 s7 {
height:240px;7 ]( @; t+ S; T7 j
width:70%;
7 \8 E7 V% J4 `/ q+ Bbackground-color: #000;
* D  c4 _( ]3 d/ h}% Q8 Z7 b$ n$ L9 L; F" o" q
html& s# [; e5 }+ z2 y
代码如下:  f# W. [( J  L* Q& T: G8 [* ?
<div class=wrap>' ]0 A3 s2 O* H$ l) ]/ U
<div class=additional></div>
% f. P" ~# `& T0 V# m' `<div id=content>
/ |$ n8 R% D& ^/ g6 ?' h</div>
5 q) T' g; A7 M) i6 ~</div>
( x2 n# J% {3 u; _, s2 ]+ V- O+ }9 M优缺点和法二一样,缺点嘛多了个额外的标签;6 R. }* u* o4 m
方法四:这个方法使用了一个 position:absolute,有固定宽度和高度的 div。这个 div 被设置为 top:0; bottom:0;。但是因为它有固定高度,其实并不能和上下都间距为 0,因此 margin:auto; 会使它居中。使用 margin:auto;使块级元素垂直居中是很简单的。1 _) I" m, @; e$ U* [
结构效果如下:6 ^0 x; L+ {& q+ i1 S  H
css
3 R+ {, V5 `+ x- w. C代码如下:8 S1 _. Q1 b9 K7 J1 R; Z# A! {
#content {
. V8 S  i# m9 ~  b9 Dposition:absolute;, P+ L! c: o# t- n4 p: u2 i$ D
top:0;
. |% {" L9 B. `0 M& \9 q9 J1 U0 `bottom:0;# @8 A. @9 @% z
left:0;8 ~/ |' V5 m" w0 O. f, k+ X
right:0;& u1 l2 b8 ^, r: I
margin:auto;' U8 L* e( i) x) D+ Y. L
height:240px;
2 U4 n% h- U8 Q- \4 V% Gwidth:70%;
9 b% |* N. W, y- V; k5 ebackground-color: #000;, @/ x8 }2 `% x% f- w
}4 `- b5 B* w6 O( A6 b8 b
html* H: r% ?1 ]7 d# F7 z
代码如下:
4 o- ^& I: F: x; D- _$ S8 \
<div id=content>& o: i' B. m* ]4 [1 V* f
content here</div>0 h( s6 m1 E7 T
优点:非常简单5 o# R; J% x+ }0 C3 u5 ?
缺点:不兼容ie6,75 v4 `7 `1 n: N4 J5 d  c
方法五:这个方法只能将单行文本置中。只需要简单地把 line-height 设置为那个对象的 height 值就可以使文本居中了。这个就不用实例了,您你看就明白;
3 c; [9 v) ]/ U5 \8 d
+ I1 a( N  y* s# R7 x! b0 q6 @更多网页制作信息请查看: 网页制作

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