返回列表 发新帖

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

314.5k 8
swmozowtfl 发表于 2015-7-9 23:15:22|湖北 | 查看全部 阅读模式
方法一:把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align属性。3 \5 S. M9 m0 a. I3 j
结构效果如下:7 G* m$ A1 r5 m* [! d% G; m0 h
css
- }7 K4 Q' c6 K/ A. z) \5 k代码如下:" E8 b8 k$ C8 f: s. C- e/ x
div#wrapper {; ~) [1 s% W- Q) |
display: table;
3 x, _- L5 e7 X+ Q3 ~$ C# ?  Twidth: 500px;
- V  E% W1 ]: ~& u# A: Rheight: 500px;1 J; h% @" M" y0 ~- p  x2 S9 @
background-color: #c00;
( u/ r9 O* i. A3 Z! D+ S8 d  Z7 ^7 i}
" t' B8 V) C  t" T$ l3 q" Ediv#row {
3 i8 r/ ]; {& X. [) f3 {  E  y  vdisplay: table-row;
$ D0 I1 s4 z# Q! S9 E8 K}
1 ?. K, Q, T0 d/ P4 D0 |0 t8 Q" Udiv#cell {
$ F! V5 T7 X- i3 N# S0 {display: table-cell;
  i& Y; g9 K0 m( Cvertical-align: middle;4 A! i: K) b/ L  C# L
}
- |: U. P! f0 }6 |: b7 |- H: zhtml  e: {( l/ p# k3 e9 x) j
代码如下:
4 E$ \; x' A1 p. I2 S
<div id=wrapper>
! s- S8 F0 X: G<div id=row>
8 c& s& t& b/ J( o<div id=cell>! e8 I* ~/ q' ?& M- x5 g+ U
if you want to sell sugar water for the rest of my life or want a chance to change the world + h7 _) c. v! x$ m1 K
</div>
0 Z* P7 s( \3 X7 W& A1 o</div>4 ]5 J6 R# d9 p. Z$ u
</div>8 e% |/ S8 t' s* Q8 h- }
优点:不用受内容高度的限制,简单实现垂直居中;
- @) y  \2 L# G3 J) `- i缺点:不兼容ie6,78 R, g( S, o! _0 s7 ]4 D
方法二:这个方法使用绝对定位的 div,把它的 top 设置为 50%,margin-top 设置为负的 content 高度。这意味着对象必须在 css 中指定固定的高度。5 d' O& \, t; J& k
结构效果如下:7 v. H* k! h3 w2 u( `- h6 g
css+ q( J8 G2 d2 m  O9 q: ?1 y4 d
代码如下:& N) S% N$ |; N
div#wrapper {' Q- E+ E6 f$ l3 \% @. k7 i' g" y
position: relative;
* h' S5 {5 a$ i1 O' Iwidth: 500px;# Z# {! a5 A/ r  Q4 i! D+ y
height: 500px;
$ q0 P: l  M8 ~0 H' U, K  Bbackground-color: #c00;
6 |* H5 n* c  {# U}
( q1 t  m/ u  G. @5 E+ M) g+ {5 e; A) e$ Udiv#content {$ e; M. m; }; P6 l9 y7 x
position: absolute;/ t( Z9 q1 D/ c, ~$ u  F
top: 50%;) N/ l. _" _: [1 W6 `
left: 0;
* w0 e6 j. `0 A& W  Xwidth: 400px;; C- S0 `# V7 z6 u7 Q
height: 300px;! I8 |6 M6 z/ W5 q' H, e' d
margin-top: -150px;
3 Q; m4 r' [3 U: d& _/ K8 Hbackground-color: pink;
  s  ]7 l+ ~( B( o" m}
- P. @2 d6 ?' v% I3 a3 zhtml
8 X. s9 X" z% a代码如下:5 t7 _( F! C# B- {: W
<div id=wrapper>  n" N: ]) d2 N5 u! v) d
<div id=content>
& t% U; g) C" l5 B! ?</div>
' q, G8 ?! y9 D# m</div># y% @0 a( ?5 L$ H
优点:兼容性好
/ _5 F- k6 K8 E# k: p: k2 M5 {. S缺点:必须知道内容盒子的高度才可以,有了这点限制;
* t, z* P8 [! R4 v3 ?2 f方法三:这个方法和方法二的原理是一样的。废话不多说看代码, a8 A: Z" b! m$ M6 x4 Y  O; L. f8 s
css
1 t& O- y) L- @代码如下:. X" l8 I8 ?( V+ K" {& y( E
.wrap {- c$ s0 _  E3 N9 d% c; ?
height: 500px;/ v: v8 w6 z: r6 A6 ^
width: 500px;
& C7 q& s2 s" x/ gbackground-color: pink;+ _. f. _5 @+ s: p# q3 H
}$ b* V, _& n" ?9 {- p$ g# `+ x
.additional {: H. U, y1 T/ D  I- L" H
height: 50%;
, u4 I; C: O! Z6 \' hmargin-bottom: -120px;8 R! `2 ?) `+ H1 p
}
! ^. z& ]( {# U' F3 R#content {. G" l# u$ }0 k8 h& G. `. M& U
height:240px;) L5 h# Y/ l7 R# @' v1 t# \
width:70%;2 h) ~0 I1 l1 B( g
background-color: #000;
" m; |* q- D4 S}" w; G. i8 N/ e) t
html7 e! ^2 t% i& Z+ s" {2 @% g
代码如下:
- m) A: x3 d; w" J7 N+ [1 s
<div class=wrap>
. C1 I1 N4 B# J<div class=additional></div>' x+ P9 v4 O& P  r
<div id=content>
+ f3 S# l5 n! V( [# b</div>; E0 Y# Q- y* a
</div>( e  d; N3 W4 S
优缺点和法二一样,缺点嘛多了个额外的标签;
) _, V7 W% a/ p! i; i7 K, K方法四:这个方法使用了一个 position:absolute,有固定宽度和高度的 div。这个 div 被设置为 top:0; bottom:0;。但是因为它有固定高度,其实并不能和上下都间距为 0,因此 margin:auto; 会使它居中。使用 margin:auto;使块级元素垂直居中是很简单的。
+ ?% P6 B3 ?: t2 _/ f结构效果如下:
0 {' B4 j' o2 b* Kcss
3 }; y, J" \9 X2 Q5 V- g代码如下:
8 G8 \. a; P7 v; H
#content {# b4 Q0 v, d) o. W1 T. y% P
position:absolute;1 F# R' g* N# S8 f* V4 i# W3 B
top:0;& r! Q. m3 W- {, M$ u, L0 \
bottom:0;1 x8 R) T$ D' [$ G$ O
left:0;7 j% [3 M2 d: t8 e% e+ ]/ @
right:0;
3 L( @: `& H7 [; d  b) z* e4 }7 Omargin:auto;. g/ H1 H* o; y9 _
height:240px;
5 x5 h$ m" _$ u1 ?; twidth:70%;
# M" \- ?1 W) l: G+ N+ Ebackground-color: #000;7 M  D' l3 D4 X# i
}
0 D  t2 A2 s( Y1 W2 ohtml6 K2 N: e6 g1 Z7 S' t0 j  b, S. l
代码如下:# V, R0 o% i8 H/ }' M
<div id=content>% }3 Q/ J# H5 p# Z' z
content here</div>' P: h9 H1 o1 t1 f5 W
优点:非常简单  h1 X+ Q: s7 c, w, D8 y
缺点:不兼容ie6,7$ J$ Q% U/ Q5 V2 J, u- F
方法五:这个方法只能将单行文本置中。只需要简单地把 line-height 设置为那个对象的 height 值就可以使文本居中了。这个就不用实例了,您你看就明白;
' |  E" z9 n, `7 x1 n0 b3 m; |
8 Q8 J* x* J# k8 f/ v4 ~0 f更多网页制作信息请查看: 网页制作

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