原文转自:http://www.cnblogs.com/justinfly/archive/2010/12/14/1893874.html
有时候,为了网页设计的美观,需要把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代码:
1
2
3
4
#div-a{
height:60px;
line-height:60px;
}
XHTML代码:
1
2
3
<div id="div-a">
......
</div>
如果还想让div里的文字水平居中,加上“text-align:center;”即可;代码如下:
CSS代码:
1
2
3
4
5
#div-a{
text-align:center;
height:60px;
line-height:60px;
}
XHTML代码:
1
2
3
4
<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(http://www.piaoyi.org/images/logo.gif) #FFF no-repeat center;
}
关键就是最后的center,这个参数定义图片的位置。还可以写成“top left”(左上角)或者"bottom right"等,也可以直接写数值"50 30"。
分享到:
相关推荐
以下是一些主要的策略来实现`div`中多行文字的垂直居中。 1. **Flexbox布局** Flexbox是CSS3引入的一种新的布局模式,它为处理容器内子元素的对齐提供了强大而灵活的方式。要实现垂直居中,可以设置`display: flex...
div框水平垂直居中跟内容垂直居中
在网页设计中,将文字垂直居中放置于DIV层内是一个常见的需求。对于单行文字和多行文字的垂直居中处理,有不同的方法和技术。本文将详细解释如何实现这两种情况下的文字垂直居中。 首先,对于单行文字而言,实现...
以上就是使用div和CSS实现多行文字垂直居中的几种常见方法,每种都有其适用场景和兼容性考虑。在实际项目中,应根据具体需求和目标浏览器范围选择合适的方法。在提供的"多行文字实现垂直居中.html"文件中,你可以...
4. **使用line-height**:如果div只有一个行内元素,如图片或文字,可以将`line-height`设为与div相同的高度来实现垂直居中。 ```css .parent { line-height: height; } .child { vertical-align: middle; } ``` ...
总结来说,实现`<div>`内多行文字垂直居中并添加省略号功能,主要涉及CSS的布局、文本对齐和溢出隐藏技术。通过`display: flex`或`display: grid`实现上下居中,结合`line-clamp`、`-webkit-line-clamp`以及`...
对于单行文字,可以使用设置高度和行高相等的方法实现垂直居中。这种方法简单易行,但需要注意 overflow:hidden 的设置,以防止内容超出容器或产生自动换行。 代码示例: ``` div { height: 25px; line-height: ...
此前给大家推荐了一个纯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 ...
通用所有浏览器, 谢谢详细信息详细信息详细信息
对于仅包含一行文字的容器,实现垂直居中较为直接。核心思想是通过设置容器的实际高度`height`与该行的高度`line-height`保持一致来达到目的。例如: ```css div { height: 25px; /* 设置容器的高度 */ line-...
学习过程中经常遇到要居中的问题,水平居中问题比较好解决,而垂直居中问题因为vertical-align经常失效,所以不容易实现,今天将自己总结的一些方法归纳于这边。 1.div中单行文字垂直水平居中。条件:外层div高度...
当`div`内的文本行数不确定,高度可变时,可以设置上下相同的`padding`值来实现视觉上的垂直居中。如下所示: ```css div { padding: 25px; } ``` 这种方法适用于所有浏览器,但要求`div`的高度能够随内容...
这样无论是单个文字还是多行文字,都会在DIV元素中垂直居中显示。 这种方法在实践中非常有效,而且兼容性良好,适用于大多数浏览器。它也适用于所有行内元素,包括inline-block元素和inline-table元素。因此,你...
2. **多行未知高度的文字垂直居中** 如果内容的高度是可变的,我们可以利用`padding`来模拟垂直居中。设置上下相同的`padding`值,可以让内容看起来在视觉上居中。例如: ```css div { padding: 25px; } ``` ...
则让文字垂直居中。 最后,保存文档,并在浏览器中预览效果,可以看到文字在div内实现了水平和垂直居中。 要注意的是,对于多行文本的垂直居中,可能需要采用更复杂的方法,例如使用Flexbox布局或CSS的定位属性等...
在CSS布局中,实现文字垂直居中是一项常见的需求。标题提到的"实现css文字垂直居中的8种方法"涵盖了多种不同的技术,适用于不同场景。以下是对这些方法的详细解释: 1. **绝对定位和负外边距**: 这种方法适用于...
"jQuery实现上下左右垂直居中.zip" 提供的是一个名为 "jquery.valign" 的插件,它专用于解决HTML元素(如图片、文字)在div容器内部的垂直对齐问题。下面将详细介绍这个插件的工作原理以及如何使用。 `jQuery....