返回列表 发新帖

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

314.3k 8
swmozowtfl 发表于 2015-7-9 23:15:22|湖北 | 查看全部 阅读模式
方法一:把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align属性。
8 V4 g/ A' I! w6 E结构效果如下:
- E5 [/ g+ o: f7 ~4 P/ Acss
( B& s6 {9 r3 F$ x0 R代码如下:/ u4 l6 c$ g" Z  h( G
div#wrapper {, Y: v2 L& R/ ]; M" s
display: table;
( }4 P6 N; w/ Qwidth: 500px;( k4 m- O+ Y4 p5 x* k' U& {
height: 500px;
. A% r8 ~. V4 i# obackground-color: #c00;, N1 t8 n5 Y4 q' P, N4 R
}& B9 a1 Y: X/ D) \+ @( A8 \8 J: |
div#row {
- V% m; E+ T0 X% ?% t. cdisplay: table-row;  q; H& T. n; X& X; w. w4 R
}2 s2 X4 Q! M' M
div#cell {
  ]2 H( G- j, e( V8 J8 _display: table-cell;4 F$ g( ]7 Z) _& s- v4 {
vertical-align: middle;
" _8 }4 v3 H" X}
8 p  ~5 B  t+ `/ Q8 Uhtml
, ~8 Y+ W4 [$ y" X代码如下:* X0 t3 ]) `1 a
<div id=wrapper>/ X: ^0 G, c# x: \  R8 d8 f
<div id=row>
" e* N% ^- u  c+ R<div id=cell>1 `7 g2 ~* v/ H3 U! e& l% {
if you want to sell sugar water for the rest of my life or want a chance to change the world   D; Q$ C- T4 p" l" A& O/ G
</div>
, a; h6 X- F" h- ~, a% N</div>3 i" W9 c$ r+ ~0 [: T9 S$ E
</div>5 Y! S1 y/ O$ D' |9 z) I
优点:不用受内容高度的限制,简单实现垂直居中;% E$ i; i2 n- ~" S) l1 T3 G8 q/ d  s; @4 a0 T
缺点:不兼容ie6,7
8 B( a) o: Z9 [0 d" }方法二:这个方法使用绝对定位的 div,把它的 top 设置为 50%,margin-top 设置为负的 content 高度。这意味着对象必须在 css 中指定固定的高度。
/ i& c" B6 U  R" [, V8 S0 h结构效果如下:
# g* t: I/ U' F* y( Y1 q' L6 ?css
8 \' ]5 a% P; |3 L. C( M代码如下:
* J1 p6 b7 L+ |7 T2 j8 i
div#wrapper {
0 O, }3 \. `7 n1 m5 c& kposition: relative;: Q6 b) Z, Q/ t
width: 500px;0 q1 n0 ?: ^0 F+ B/ P5 w1 }" Z  m# h5 _
height: 500px;
. J' I2 l! W# b/ f( m  e( z8 Ebackground-color: #c00;
2 l+ O) V1 `5 H7 V4 j}
$ N) Z0 F3 ?# i! Udiv#content {
8 m- [/ M1 v. _3 p4 A: U+ `position: absolute;- l8 J& @0 C) |% O$ N: ]
top: 50%;
- k7 {$ ]7 A: H  T* O- X3 Vleft: 0;1 s3 N# }" V+ c9 |: C" Z8 s
width: 400px;
  o# n3 V* j% l0 Oheight: 300px;7 r/ a: O! Y' d) C
margin-top: -150px;) L; |; M0 |) h% J& g) N: }0 ~% M0 z
background-color: pink;
! D+ p$ h7 [* O$ z}
; o/ C; }* h' t7 p7 rhtml
- ^2 I5 a# A# F4 S代码如下:
3 E4 K2 S2 m, z* U9 {' L4 P
<div id=wrapper>( @5 S8 e/ P$ J4 _9 Y& S+ O
<div id=content>2 |$ ?0 x5 e* t3 Q+ ]6 i. b
</div>7 A; f# p0 g0 f# P  b' _3 b7 z
</div>
8 S% v5 x. N* n5 h& Q4 x% g5 h优点:兼容性好
; c7 g: }( \: ~缺点:必须知道内容盒子的高度才可以,有了这点限制;' ^5 L9 p' H  {/ P# F4 x
方法三:这个方法和方法二的原理是一样的。废话不多说看代码( K5 q0 f1 D' x1 U; x, R
css
, K% g3 G1 q( U+ z% t# J代码如下:$ \+ h' N; F% Y8 u; R
.wrap {: X* [  P' k- F5 Q0 P) f
height: 500px;
' _) P: _9 `5 o9 ^) }, mwidth: 500px;! C" c% f2 f9 P; P, J) r- t7 J
background-color: pink;
4 L: i/ I3 j/ e: [}5 J( F9 ]% m+ J- y" ]
.additional {4 h. e2 w/ \  _7 M$ y
height: 50%;* P3 E- O4 J! n# K4 f9 n1 q
margin-bottom: -120px;: _4 Z. y7 `0 C9 e' j: H# I
}
! O' c8 I  U" q$ A( F#content {
3 V( I4 b2 Z: c2 x* o, Yheight:240px;
/ u" @! ?, u7 T& m1 J$ Qwidth:70%;
' G, P- ?5 ^! E9 lbackground-color: #000;7 h4 t8 p0 U4 l1 `9 E
}, U* _. a5 J2 v# D, h* l( L
html
$ {6 p3 J7 B- b; b代码如下:( g) o# z& g* r+ Z. Z/ n9 C
<div class=wrap>6 g) u; H8 u# }
<div class=additional></div>& c# b$ S) |8 D4 h
<div id=content>
! i9 l# v0 V, ~/ w# n7 l) G/ D, z</div>, w! ?; U% z) m: ~2 g4 V
</div>
7 F- P/ {! l. S2 e9 n优缺点和法二一样,缺点嘛多了个额外的标签;
5 D, l- j( M( L- e8 b& [方法四:这个方法使用了一个 position:absolute,有固定宽度和高度的 div。这个 div 被设置为 top:0; bottom:0;。但是因为它有固定高度,其实并不能和上下都间距为 0,因此 margin:auto; 会使它居中。使用 margin:auto;使块级元素垂直居中是很简单的。
1 N$ ]) n& g' c# r7 t+ w0 i$ g4 K结构效果如下:9 U  v; ~/ @+ X" ~$ M4 k: j
css
3 l+ `  a9 Q( ]. M代码如下:
% a: ~9 `# x0 h' }0 ]- F) S
#content {
0 n9 ?! i2 k0 E) z& ^position:absolute;6 M/ `& Y/ o; ?* J
top:0;8 }# B$ Z# r7 R7 `, Q
bottom:0;$ Y* f3 g( @% F$ L
left:0;
" ]7 z% f8 H' ]) e1 C( Gright:0;$ x$ a7 l1 H; i6 {# J0 ]
margin:auto;
" k/ }( X+ n& c$ L- C9 b5 Nheight:240px;
/ b3 F; g- e/ l& j' S$ w- V) ?* Pwidth:70%;
5 A* A% C3 V7 F  _/ Q7 \- wbackground-color: #000;- f0 U) x6 D2 O; q& D
}
+ v4 P' b0 c. h' Ohtml
0 u, c9 [5 K6 g代码如下:3 _: g6 H8 H+ n: H* F! \
<div id=content>: y' W2 \1 U  S+ z1 d7 \
content here</div>
1 _! \5 _; n" m. _' T优点:非常简单
/ a6 D8 c* C5 E/ m缺点:不兼容ie6,7( ~0 A' I$ W' X7 ?
方法五:这个方法只能将单行文本置中。只需要简单地把 line-height 设置为那个对象的 height 值就可以使文本居中了。这个就不用实例了,您你看就明白;
+ A* @' r$ Y5 E9 z
  Y- L+ l6 x  W2 l( Z: 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客服 返回顶部
快速回复 返回顶部 返回列表