[转]文字垂直居中
来源:互联网 发布:淘宝未收到货显示签收 编辑:程序博客网 时间:2024/05/22 04:29
“文字垂直居中”这个算是老话题,网上也有很多解决方式,我这里就介绍一种较为简单的实现方法.
具体来说应该有两种情况:
1.单行文字
这种情况比较好处理,直接设置与height相等的line-height就OK,或者使用padding.
2.多行文字在已知高度的容器里垂直居中
曾经用table布局的时候要达到这个效果非常容易,但现在就需要费点心思:
对于标准的浏览器只需添加display:table-cell; vertical-align:middle;就可以实现,目前IE8已支持这种写法,但IE6 IE7还是不不行.
针对IE6,IE7我们需要改变下结构,这里是增加了<i>和<p>两个容器,其中<i>的宽度设为0,高度设为100%,这就形成一条看不见的线,并设为内联元素使得vertical-align:middle;生效,用zoom:1;触发IE的layout,配合<p>的weight:100%和vertical-align:middle;最终实现了文字的垂直居中,看看效果:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>文字与图片垂直居中</title><style type="text/css">.demo{ display:table-cell; width:400px; height:300px; border:1px solid #d7d7d7; vertical-align:middle;}.demo i{ display:inline; width:0px; height:100%; vertical-align:middle; zoom:1;}.demo p{ display:inline; width:100%; vertical-align:middle; zoom:1;}</style></head><body><div class="demo"> <i></i> <p>我们来看看这段文字是不是垂直居中的,我们来看看这段文字是不是垂直居中的,我们来看看这段文字是不是垂直居中的,我们来看看这段文字是不是垂直居中的.</p></div></body></html>
但在测试中发现Chrome下demo的高度莫名的减少了(大概只有180px),这里还需要为Chrome单独写个hack
@media screen and (-webkit-min-device-pixel-ratio:0) {
.demo p{ height:100%;}/*Google Chrome*/
}
最终代码:(支持IE5.5-IE8、FF、Opera、Chrome)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>文字与图片垂直居中</title><style type="text/css">.demo{ display:table-cell; width:400px; height:300px; border:1px solid #d7d7d7; vertical-align:middle;}.demo i{ display:inline; width:0px; height:100%; vertical-align:middle; zoom:1;}.demo p{ display:inline; width:100%; vertical-align:middle; zoom:1;}@media screen and (-webkit-min-device-pixel-ratio:0) { .demo p{ height:100%;}/*Google Chrome*/}</style></head><body><div class="demo"> <i></i> <p>我们来看看这段文字是不是垂直居中的,我们来看看这段文字是不是垂直居中的,我们来看看这段文字是不是垂直居中的,我们来看看这段文字是不是垂直居中的.</p></div></body></html>
这种实现方法的缺点:增加一个无意义的容器.
原文链接:http://www.iinterest.net/2009/04/06/vertical-align/
- [转]文字垂直居中
- 文字垂直居中效果
- 文字垂直居中
- CSS 文字 垂直 居中
- css 文字垂直居中
- 实现文字垂直居中
- UITextField 文字垂直居中
- html文字垂直居中
- CSS文字垂直居中
- 元素、文字垂直居中
- 元素、文字垂直居中
- 文字垂直居中
- 垂直文字居中
- 关于文字的垂直居中
- 图片和文字垂直居中
- input文本框文字垂直居中
- div中文字垂直居中
- div中文字垂直居中
- Linux I2C 几个结构体间的关系
- Line-in 和Mic-in的区别
- 一个典型kernel bug的追踪之(一):出错现场分析
- Android IPC 通讯机制源码分析
- java调用SAP RFC函数
- [转]文字垂直居中
- CSS Overflow属性详解
- xtu_2008 搜索
- Winform开发框架之系统重新登录、自动登录实现
- 多线程示例代码
- Win32 API编程笔记(转)
- java调用SAP RFC函数 2
- POJ 3608 Bridge Across Islands(两个凸包最近距离,旋转卡壳)
- IOS 自定义 UIDatePicker 背景图片