利用vertical-align:middle垂直居中

以前总是以为vertical-align与text-align是同样的道理,一个是垂直居中,一个是水平居中,结果在这里一点效果也没有。事实上vertical-align与text-align完全不一样,vertical-align不能这样用。

vertical-align 属性设置元素的垂直对齐方式。该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。允许指定负长度值和百分比值。这会使元素降低而不是升高。在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。默认值:baseline,元素放置在父元素的基线上。

第一种用法,先看后面一句“在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。”这很容易理解,如果给一个表格的td加一个vertical-align:middle的样式,表格里面的内容会垂直居中,同样的如果给一个vertical-align:bottom就会底部对齐,如果给一个vertical-align:top就会顶部对齐。

第二种用法,该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。假设有两个行内元素a和b,a和b都是div,当a加了一个vertical-align:middle样式之后,b的底部(基线)就会对齐a的中间位置,如下图:

如果a和b都加了一个vertical-align:middle样式,那么就互相对齐了对方的中间位置,也就是它们在垂直方向上的中线对齐了,如下图:

现在我要让class="box"的div在class="wrapper"的div里面垂直居中,我可以在class="wrapper"的div里面加一个div空标签,把它的高度设为100%,宽度设置为0,再给它一个vertical-align:middle样式,同样的给class="box"的div一个vertical-align:middle样式,那么box就可以在div里面垂直居中了。

 1 <style>
 2     .wrapper {
 3         width: 200px;
 4         height: 200px;
 5         background-color: green;
 6
 7         margin: 0 auto;
 8         text-align: center;
 9     }
10
11     .help {
12         width: 0;
13         height: 200px;
14
15         display: inline-block;
16         vertical-align: middle;
17
18     }
19     .content {
20         width: 100px;
21         height: 100px;
22         background-color: yellow;
23
24         vertical-align: middle;
25         display: inline-block;
26
27     }
28
29 </style>
30 </head>
31 <body>
32     <div class="wrapper">
33         <div class="help"></div>
34         <div class="content"></div>
35     </div>
36
37 </body>

下面我们来看一张图来更好理解垂直对齐主要属性值的表现形式

时间: 2024-10-01 06:55:14

利用vertical-align:middle垂直居中的相关文章

line height 与 vertical align

一.line height 其中代表inline box(包含上下间距,若height==line-height,则行间距=line-height - font-size/2),big代表content area. 注: 若line-height < content area ,则line box要取line-height的值,这也是为什么会重叠的原因. line-height属性取值: 1. % 若自身没有设置line-height,则line-height = 父元素的font-size *

css vertical-align:middle; 垂直居中的一个推荐方式(IE7+)(个人喜欢)

记录一下: 采用 inline-block 方法: HTML: <div id="box"> <div id="content">我是内容<br />我也是内容</div> <i class="_actor"></i> </div> CSS: #box { height: 400px; background: #c00;} #content { display:

CSS实现完美垂直居中

之前看到很多人一直都问这个问题,不过当时我没当一回事,因为在 CSS 中要垂直居中,多数是在有高度的情况下,或者容器高度不定的情况下才用,看上去比较舒服,而且实现的方法也不少,不一定要拘泥于和 table 布局一样.不过最近有人问了几个例子,看来对此的需求还不少.现在就把我经验拿出来分享一下,希望大家鼓鼓掌. 首先,要有一个概念:凡是 table 布局可以实现的,CSS 一定可以实现.CSS 可以实现的,table 未必能做到. 现在来几个例子: 一.单行内容的居中只考虑单行是最简单的,无论是否

自适应居中

一.窗体居中 1 position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto; /*height: 50px; width: 165px; */ 简析: position:固定位置显示(absolute|fixed): [absolute:窗口大小由上层position为absolute.fixed.relative的子父关系窗口决定:fixed:窗口大小由上层层position为fixed的子父关系窗口决定] t

Extjs4表单(转 出处:http://www.cnblogs.com/luluping/archive/2011/11/09/2243763.html)

<HTML> <HEAD> <TITLE>提示信息</TITLE> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link rel="stylesheet" type="text/css" href="http://www.cnblogs.com/ext-4.0

div仿checkbox表单样式美化及功能

div仿checkbox表单样式美化及功能(checkbox的样式不好看)素材在底部: 效果图: window.css .bj { position: absolute; top: 0; left: 0; bottom: 1px; width: 100 % ; height: 980px; z - index: 9; background - color: #000; filter: alpha(opacity = 50); - moz - opacity: 0.5; - khtml - opa

css 居中,中央

在我的技巧里,有4中居中中央的方法: 1.position:absolute; top:50%;left:50%; margin : -x 0 0 -x; 这是绝对定位的方法,通过算法移动,坏处就是必须知道element的height & width. 2.vertical align middle 在element 里,只要知道父层的高,子层就能通过vertical align middle移动到中间,当然,父层同时也要有text align center,或者子层margin auto; d

关于垂直居中

做项目每次垂直居中的时候都折腾半天,在这边稍微整理一下垂直居中我所理解的一点知识吧. 1,行内元素 行内元素,比如,img,span等直接用vertical-align:middle,就可以搞定了. 2,块元素 垂直居中,最简单的方式是height:20px;line-height:20px;让他们相等,块元素就可以达到居中效果并且不破坏周围的布局. 还可以用绝对定位来布局,height:100px;position:absolute:top:50%:margin-top:-50px;也可以达到

CSS垂直居中完美有用实例

<!DOCTYPE HTML> <html> <head> <meta meta charset="utf-8"> <title>CSS垂直居中</title> <style type="text/css" media="all"> body{color:black;background-color:white;padding:50px;font-size: 12