css 文字垂直居中实现方法总结

实际上,一个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;”。

DIV中多行文字的垂直居中
3.1 利用Table使Div多行文字垂直居中
    对于多行文字,上面的垂直居中的方法就不行了,可以在div里嵌套一个table,因为vertical-align:middle;对table的垂直居中是有效的。

<div>

 代码如下 复制代码
 <table>
  <tr>
   <td style="vertical-align:middle;height:30px;">
     div中利用table的vertical-align:middle;属性实现多行文字的垂直居中功能。
   </td>
  </tr>
 </table>
</div>

3.2 利用Padding实现Div多行未知高度文字的垂直居中
    对于多行文字,如果不考虑容器高度,则可以定义 padding-bottom 和 padding-top ,使上下的padding值相同,也能实现div多行文字的垂直居中。这是一种“看起来居中”的垂直居中方式,它只是使文字把<div>完全填充。这种实现方式的特点如下:

优点:
  1. 同时支持块级和内联极元素
  2. 支持非文本内容
  3. 支持所有浏览器
缺点:
  容器不是固定高度

3.3 利用Display模拟Table实现div多行文字的垂直居中
    CSS中有一个display属性能够模拟<table>,可以使用这个属性来让<div>模拟<table>,这样就可以使用vertical-align了。注意,display:table和display:table-cell的使用方法,前者必须设置在父元素上,后者必须设置在子元素上,因此我们要为需要定位的文本再增加一个<div>元素。

 代码如下 复制代码

//CSS代码
div #wrap {   
   height:200px;   
   display:table;   
}   
div #content {   
   vertical-align:middle;   
   display:table-cell;   
   border:1px solid #FF0099;   
   background-color:#FFCCFF;   
   width:40px;
}

//Html代码
<div id="wrap">   
  <div id="content">
    <pre>
        display模拟table实现div多行文字垂直居中显示!     
    </pre>
  </div>   
</div> 

但是Internet Explorer 6 不支持display:table和display:table-cell,因此这种方法在Internet Explorer 6及以下的版本中是无效的。

Explorer 6中的垂直居中:

 代码如下 复制代码

//CSS代码
div#wrap {  
  border:1px solid #FF0099;  
  background-color:#FFCCFF;  
  width:760px;  
  height:400px;  
  position:relative;  
}  
div#subwrap {  
  position:absolute;  
  border:1px solid #000;  
  top:50%;  
}  
div#content {  
  border:1px solid #000;  
  position:relative;  
  top:-50%;  
}

//Html代码
<div id="wrap">  
  <div id="subwrap">  
    <div id="content">
      <pre>
         现在我们要使这段文字垂直居中显示!   
      </pre>
    </div>  
  </div>  
</div> 

时间: 2024-10-25 18:12:12

css 文字垂直居中实现方法总结的相关文章

div设计中的文字垂直居中的方法

CSS中怎样设置才能使对象中的文字垂直居中于对象,这个问题也是捆扰很多朋友的难题.现在网上的很多代码都做不到浏览器兼容.我把网上有关的方法整理了一下,做了些改动,完全可以兼容各主流浏览器. 下面具体说一下在不同情况下垂直居中的方法. 一.一行文字垂直居中 看一下下面的代码: Code Code 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xh

CSS如何水平垂直居中?CSS水平垂直居中的方法汇总

直接进入主题! 一.脱离文档流元素的居中 方法一:margin:auto法 CSS代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 div{       width:400px;       height:400px;       position:relative;       border:1pxsolid#465468;  }  img{       position:absolute;       margin:auto;       top:0;       l

CSS实现同一行的图片和文字垂直居中对齐的方法

 本文实例讲述了CSS实现同一行的图片和文字垂直居中对齐的方法.分享给大家供大家参考.具体分析如下: 有些朋友会发现,如果一行内容中有图片有文字的话,文字往往会自动的底部对齐,影响美观,那如何让它们相对于垂直居中呢,很简单,就是在图片和文字所在的行中添加CSS属性:vertical-align:middle;这样,它们在同一行就会垂直居中对齐了. 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

小技巧:用CSS如何实现单行图片与文字垂直居中

css|技巧 今天又在群中看到一些朋友问单行图片文字垂直居中问题了,于是写了这篇文章. 这个问题是在做页面中经常会遇到的问题,首行我们先看一下最基础的的吧! 以下选自(CSS权威指南) vertical-align初始值: baseline(缺省值)可否继承:否适用于: 内联元素说明:vertical-align:baseline使元素的基线同父元素的基线对齐.警告:vertical-align不能影响表格单元中的内容的对齐,对于块元素中的内容也一样. 文字不多,但时常有人范错误,有人说我用了为

CSS文字图片div元素居中方法之水平居中

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 文字居中,文字垂直居中水平居中,图片居中,图片水平居中垂直居中,块元素垂直居中?当我们在做前端开发是时候关于css居中的问题是很常见的.情况有很多种,不同的情况又有不同的解决方式.水平居中的方式解决的时候相对来说通过css比较容易设置,垂直居中相对比较棘手. 先来说一下水平居中的不同情况与不同解决方法吧. 1文本,图片等行内元素的水平居中方法

用CSS实现文字垂直居中的代码

用CSS实现文字垂直居中的代码 <style type="text/css"><!--.con_div{width:400px;height:300px;border:1px solid #777;text-align:center;display:table-cell;vertical-align:middle;background:red;color:#fff}/*FOR IE*/.webjx{width:0;height:100%;display:inline-

使用CSS来实现垂直居中的方法

利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法.我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站. 使用 CSS 实现垂直居中并不容易.有些方法在一些浏览器中无效.下面我们看一下使对象垂直集中的5种不同方法,以及它们各自的优缺点.(可以看看测试页面,有简短解释.) 方法一 这个方法把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align property 属性. <div id="wrapper">

CSS解决图片垂直居中的方法

图片垂直居中是DIV+CSS布局中经常碰到的问题,下面就这个问题我们进行研究并给出一个解决方法! 目的是为了使用纯CSS实现未知尺寸的图片(但高宽都小于200px)在200px的正方形容器中水平和垂直居中. 难点在于两点: 1.垂直居中: 2.图片是个置换元素,有些特殊的特性. 至于如何解决,下面是一个权衡的相对结构干净,CSS简单的解决方法: .box {         /*非IE的主流浏览器识别的垂直居中的方法*/         display: table-cell;        

用CSS实现垂直居中的3种方法

使用 CSS 实现垂直居中并不容易.有些方法在一些浏览器中无效.下面我们看一下使对象垂直集中的3种不同方法,以及它们各自的优缺点 方法一: 这个方法把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align property 属性. <div id="wrapper"> <div id="cell"> <div class="content"> Content goes here