实现多行文字对齐的原理

多行文字对齐的现象

之前已经实现过多行文字对齐的方法,实现方法详见:多行文字对齐的实现方法,多行文字兼容IE6的关键就是一个空标签<i></i>,

下面我们来看一看不加i标签之前IE6下显示的效果:

而chrome下的效果:

加下i标签后,IE6下的显示效果:

可见在现代浏览器中,对于有没有i标签是没有影响的,为什么加上这个标签之后,IE6就可以实现多行文字对齐了呢?

多行文字对齐的原理

在盒子模型中,父盒子line-height的高度是由子盒子中高度最高的那个盒子决定的,在本例中,我们设置了还有多行文字盒子的line-height值,以保证多行文字之间的间距是正确的,但是这个盒子的高度在IE6不足以撑开整个盒子的高度,所以我们必须引入一个空元素,来把撑加这个高度,读到这里,你可能又有点不太理解了,我们并没有设置这个空元素的line-height的值啊,为什么它能够撑开呢,看一下下面的图你就明白了,

因为这个空元素的line-height的值继承自父元素,所以这个空元素的line-height是150,这样就实现了多行文字的垂直对齐了!

时间: 2024-10-06 10:34:57

实现多行文字对齐的原理的相关文章

css实现一行文字居中,多行文字左对齐

问题及场景: 当内容能一行显示在盒子内时,文字居中对齐. 当内容过多换行后显示在盒子内时,文字左对齐. 其实这种视觉上的需求还是蛮常见的.比如用于弹出提示框,当提示内容比较少时,内容居中显示在弹出框,提示内容比较多时,内容居左对齐.但是其纯CSS实现有点麻烦,一般就放掉这个需求,或者,使用JS实现. 解决方案: 效果如下 CSS实现代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta chars

大小不固定的图片和多行文字的垂直水平居中

一.大小不固定,多行文字的垂直居中 ① 单行文字 可能很多人都知道如何让单行文字垂直居中显示,就是使用line-height,将line-height值与外部标签盒子的高度值设置成一致就可以了.例如: 单行文字居中显示测试,css样式为:height:3em; line-height:3em;-- ② 多行文字 但是对于外框高度固定,文字大小个数不固定的多行文字呢?文字可能一行显示,也有可能多行显示:文字可能是小号字体,也有可能是大号的.这时候如何让其垂直居中显示呢?看下面! 这里的文字用来做多

转 图片、多行文字的水平垂直居中

想必写css的都知道如何让单行文字在高度固定的容器内垂直居中,但是您知道或者想过让行数不固定的文字在高度固定的容器内垂直居中呢?本文将会告诉你如何实现多行文字的垂直居中显示.关于图片垂直居中显示,想必很多写css的人都研究过,或者说是搜寻过方法.淘宝团队似乎提供了一种不错的方法,用font-size解决IE下垂直居中的问题,是个好方法吗?是的,方法是不错,可是问题也很多:不支持img外标签的浮动,致使多图片排列时需添加额外标签:需要记住一些比例参数,上手较难:原理艰深,兼容性不稳定等.但是在我看

大小不固定的图片、多行文字的水平垂直居中

想必写css的都知道如何让单行文字在高度固定的容器内垂直居中,但是您知道或者想过让行数不固定的文字在高度固定的容器内垂直居中呢?本文将会告诉你如何实现多行文字的垂直居中显示. 关于图片垂直居中显示,想必很多写css的人都研究过,或者说是搜寻过方法.淘宝团队似乎提供了一种不错的方法, 用font-size解决IE下垂直居中的问题,是个好方法吗?是的,方法是不错,可是问题也很多:不支持img外标签的浮动,致使多图片排列时需添加额 外标签:需要记住一些比例参数,上手较难:原理艰深,兼容性不稳定等.但是

多行文字(图片)垂直居中

最近比较忙,没有时间更新博文.也就在这段时间遇到了些问题,其实这些问题以前遇到过,也处理了,但最近遇到这个问题突然间不知道怎么处理了.半年多没遇到过多行文字垂直居中的问题,可能是因为所处行业问题.好了废话不多说. 大家应该多遇到过这个问题,可能大家都知道怎么解决,但有多少人真的弄清楚它的原理呢? 说先我们先写出html,如下: <div class="cont"> <div class="hack"> <div class="

div垂直居中的N种方法 单行/多行文字(未知高度/固定高度)

说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的 CSSHack技术就可以啊!所以在这里我还要啰嗦两句,CSS中的确是有vertical-align属性,但是它只对(X)HTML元素中拥有 valign特性的元素才生 效,例如表格元素中的<td>.<th>.<caption>等,而 像<div>.<span>这样的元素是没有valign特性的,因此使用verti

多行文字垂直居中(完美兼容chrome firefox IE6 7 8 9)

在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中的确是有vertical-align属性,但是它只对(X)HTML元素中拥有valign特性的元素才生 效,例如表格元素中的<td>.<th>.<caption>等,而像<div>.<span>这样的元素是没有valign特性的,因此使用vertic

CSS图标文字对齐和表单输入框文字对齐兼容

张鑫旭的一篇文章,讲到20像素图标对齐和表单元素40像素对齐有所收获,谢谢@张鑫旭 ,很多观点跟平时的处理方式不谋而合,一般来说,我处理图标如果临近的话都会使用同样宽高,然后使用inline-block比较多,表单输入框和按钮以line-height:21-22为准.然后超出的用padding来补充. 以下摘录部分原文中的实践代码. 1.图标和文字对齐 一般的图标和文字对齐html代码: <p><i class="icon"></i>前端开发博客&l

html&amp;css中的文字对齐问题

html&css的使用过程中,我们经常会遇到很多文字对齐问题.下面我要介绍一个有丁点难的文字对齐问题. 实现效果如下图所示. 两行长度不定的文字,要让它们总体水平居中,然后,这两行字要左对齐,如下图所示. 听起来好像挺简单,然而实现起来却...... 错误做法一: 用一个大块div包住两个div,在大div中设置"text-align:center; ",在小div中设置"text-align:left; " 结果如下图所示. 因为div会占据一整行,而不能