- 浏览: 60245 次
- 性别:
- 来自: 大连
文章分类
最新评论
有时候,为了网页设计的美观,需要把div+css设计的页面里的某些div层里的文字垂直居中,包括多行文字以及单行文字;方法有不少,但真正能实现而代码又简洁的介绍不多,flymorn就为大家介绍几种适用的div文字垂直居中的方法。
首先要知道css里vertical-align无效,W3C官方对vertical-align做了下面的解释: “ This property affects the vertical positioning inside a line box of the boxes generated by an inline-level element.”
实际上,一个Box中由很多行很多元素组成,vertical-align只作用于在同一行内的元素,它的垂直并不是相对于整个Box而言的。前面定义了一个60px的高度,但是这个Box中存在很多行,那段文本并不能对齐到中央。因此希望那段文本对齐中间,需要给它定义一个line-height的属性,让line-height为60px,作用于一行的vertical-align就可以工作了。
如果是单行文字想垂直居中,只要保证div高和行高保持一致,就可以了。用下面的代码即可实现:
CSS代码:
#div-a{
height:60px;
line-height:60px;
}
XHTML代码:
<div id="div-a">
......
</div>
如果还想让div里的文字水平居中,加上“text-align:center;”即可;代码如下:
CSS代码:
#div-a{
text-align:center;
height:60px;
line-height:60px;
}
XHTML代码:
<div id="div-a">
....
</div>
说明:如果在父级元素定义TEXT-ALIGN:center;这个的意思就是在父级元素内的内容居中;对于IE这样设定就已经可以了。但在mozilla中不能居中。解决办法就是在子元素定义时候设定时再加上“MARGIN-RIGHT:auto; MARGIN-LEFT:auto;”。
但是,如果是多行文字,上面的垂直居中的方法就不行了,得用变通的方法实现;这里建议使用table方法,在table外面再套上相应的div,
代码如下:
<table>
<tr><td style="vertical-align:middle;height:300px;background-color:red">
</td></tr>
</table>
多行文字居中还有另外一种方法:
多行内容居中,且容器高度可变,也很简单,给出一致的 padding-bottom 和 padding-top 就行:
.middle-demo-2
{
padding-top: 24px;
padding-bottom: 24px;
}
优点:
1. 同时支持块级和内联极元素
2. 支持非文本内容
3. 支持所有浏览器
缺点:
容器不能固定高度
如何使图片在DIV中垂直居中,可以用背景的方法。如下:
body
{
BACKGROUND:url() #FFF no-repeat center;
}
关键就是最后的center,这个参数定义图片的位置。还可以写成“top left”(左上角)或者"bottom right"等,也可以直接写数值"50 30"。
首先要知道css里vertical-align无效,W3C官方对vertical-align做了下面的解释: “ This property affects the vertical positioning inside a line box of the boxes generated by an inline-level element.”
实际上,一个Box中由很多行很多元素组成,vertical-align只作用于在同一行内的元素,它的垂直并不是相对于整个Box而言的。前面定义了一个60px的高度,但是这个Box中存在很多行,那段文本并不能对齐到中央。因此希望那段文本对齐中间,需要给它定义一个line-height的属性,让line-height为60px,作用于一行的vertical-align就可以工作了。
如果是单行文字想垂直居中,只要保证div高和行高保持一致,就可以了。用下面的代码即可实现:
CSS代码:
#div-a{
height:60px;
line-height:60px;
}
XHTML代码:
<div id="div-a">
......
</div>
如果还想让div里的文字水平居中,加上“text-align:center;”即可;代码如下:
CSS代码:
#div-a{
text-align:center;
height:60px;
line-height:60px;
}
XHTML代码:
<div id="div-a">
....
</div>
说明:如果在父级元素定义TEXT-ALIGN:center;这个的意思就是在父级元素内的内容居中;对于IE这样设定就已经可以了。但在mozilla中不能居中。解决办法就是在子元素定义时候设定时再加上“MARGIN-RIGHT:auto; MARGIN-LEFT:auto;”。
但是,如果是多行文字,上面的垂直居中的方法就不行了,得用变通的方法实现;这里建议使用table方法,在table外面再套上相应的div,
代码如下:
<table>
<tr><td style="vertical-align:middle;height:300px;background-color:red">
</td></tr>
</table>
多行文字居中还有另外一种方法:
多行内容居中,且容器高度可变,也很简单,给出一致的 padding-bottom 和 padding-top 就行:
.middle-demo-2
{
padding-top: 24px;
padding-bottom: 24px;
}
优点:
1. 同时支持块级和内联极元素
2. 支持非文本内容
3. 支持所有浏览器
缺点:
容器不能固定高度
如何使图片在DIV中垂直居中,可以用背景的方法。如下:
body
{
BACKGROUND:url() #FFF no-repeat center;
}
关键就是最后的center,这个参数定义图片的位置。还可以写成“top left”(左上角)或者"bottom right"等,也可以直接写数值"50 30"。
发表评论
-
Jquery实现表格行的动态增加与删除
2014-05-29 08:45 1214<!DOCTYPE html PUBLIC " ... -
CSS3伪类选择器
2014-04-18 09:32 563CSS的伪类语法和别的语 ... -
Jquery实现选中左边的下拉菜单点击按钮之后跑右边
2014-04-15 14:34 1011script代码: <script type=" ... -
html之marquee详解
2014-03-28 10:07 600该标签不是HTML3.2的一部分,并且只支持MSIE3以后内核 ... -
Html中a标签的四个属性 link ,visited , hover ,active 是有顺序的! LVHA
2014-03-25 15:39 18431。html中a标签的四个属性书写是有顺序的,如果顺序不对,显 ... -
修改360浏览器内核
2014-03-10 17:19 1884浏览器内核控制Meta标签说明文档 背景介绍 由于众所周知 ... -
bootstrap时间控件
2014-03-06 13:27 1176<!DOCTYPE html PUBLIC " ... -
IE=EmulateIE7 标签的作用
2014-02-28 14:05 616对于 Web 开发人员来说 ... -
修改IE浏览器默认的文档模式
2014-02-28 13:26 1808开始运行输入C:\Windows\System32\gpedi ... -
网页制作中Iframe自适应高度的解决办法
2013-12-27 10:14 549进行网页设计时,由于网站的海量信息以及标准化的网页制作模式 ... -
Jquery获取当前屏幕的宽度、高度
2013-12-05 14:48 893<script type="text/java ... -
iframe,frameset区别
2013-12-05 10:24 535■ 框架概念 : 所谓框架便是网页画面分成几个框窗,同时取得 ... -
顶部浮动
2013-11-29 09:37 407<!DOCTYPE html PUBLIC " ... -
js+JQuery实现返回顶部功能
2013-11-18 11:05 503很多网站上都有返回顶部的效果,本文阐述如何使用jquery实现 ... -
转 CSS hack:针对IE6,IE7,firefox显示不同效果
2013-09-05 13:55 962CSS hack:针对IE6,IE7,firefox显示不同效 ... -
white-space:
2013-08-30 10:57 452定义和用法 white-space 属性设置如何处理元素内的空 ... -
通过css将直角矩形变为圆角矩形
2013-08-30 10:56 1140{border-radius:6px 6px 0 0} -
整合IE7与其他IE版本的兼容
2013-08-21 09:39 537<!--[if lte IE 7]> <d ... -
常见浏览器兼容性问题与解决方案css篇
2013-08-12 17:17 737所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同 ... -
如何在页面中设置IE浏览器的文档模式
2013-08-04 12:58 1052如何在页面中设置IE浏 ...
相关推荐
div中多行文字垂直居中
div框水平垂直居中跟内容垂直居中
如果是单行文字想垂直居中,只要保证div高和行高保持一致,就可以了;如果是多行文字,上面的垂直居中的方法就不行了,得用变通的方法实现;这里建议使用table方法
DIV内多行文字垂直居中,并且超过固定行数时显示省略号
div+css多行文字实现垂直居中,高度可自动适应
此前给大家推荐了一个纯css实现div容器内图片、文字上下居中的效果,缺点是采用了部分css3样式,兼容性较差,相关链接:纯css实现div容器内图片上下左右居中效果 今天特意在网上找到了一款插件--jquery.valign,可...
本人在面试的时候被问到:如何使一段不定宽高的文字垂直居中呢? 现在来总结一下: 在body中写入结构 <div id=main> <div id=login> djshdk awjdsd sede sfcdf vdj sh dkaw jds dse desf cdf vd jsh dkawjd sds ...
通用所有浏览器, 谢谢详细信息详细信息详细信息
学习过程中经常遇到要居中的问题,水平居中问题比较好解决,而垂直居中问题因为vertical-align经常失效,所以不容易实现,今天将自己总结的一些方法归纳于这边。 1.div中单行文字垂直水平居中。条件:外层div高度...
接下来将介绍下:div垂直居中的N种方法包括:单行垂直居中/多行未知高度文字的垂直居中/多行文本固定高度的居中/在InternetExplorer中的解决方案等等感兴趣的你可不要错过了哈,或许本文所提供的方法对你有所帮助
div垂直居中的N种方法 单行/多行文字(未知高度/固定高度) 说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的 CSSHack技术就可以啊!所以在...
利用百分比控制文字上下居中,纯css控制,div布局,通过百分比控制文字垂直居中
jQuery实现上下左右垂直居中是一款jquery.valign插件,可控制图片、文字在div容器内垂直上对齐、居中、底部对齐三种效果。
前些天在W3CPlus看到了一篇文章,提到用CSS制作水平垂直居中,在测试其中的第六点时发现了一些小问题: 添加了一个无意义的新标签 复制代码代码如下: <div id=”extra”> 当设定内容宽度的时候,文本换行了 对于...
在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的...一、单行垂直居中 如果一个容器中只有一行文字,对它实现居中相对比较简单,我们只需要
如果盒模型中间只有几段文字的话,设置line-height就可以实现居中显示了! 如果要实现盒模型中的div居中,可以参考以下代码: CSS Code复制内容到剪贴板 div#wrap { display: table; border: 1px ...
垂直居中在IE浏览器下的实现比较难实现,而更难实现的应该是未知内容高度的垂直水平居中!还好网上也有很多高人发布了一些解决的方法!这里我进行了一些改良,兼容FF,IE6,IE7,Opera…如发现问题有劳回复评论! ...
在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中的确是有vertical-align属性,...
从事页面重构以来,由于经常遇见宽度不固定的div在水平或垂直居中的问题!总结下!留着以后用