table-cell轻松设置文本图片水平垂直居中

  让一个元素垂直居中的思路:把这个元素的容器设置为table-cell,也就是具有表格单元格的特性,再使用vertical-align(这个属性对block元素不起作用,但对table-cell元素是有效的)设置元素垂直居中,即可达到我们想要的效果。

  IE7及以下版本不支持此方法,IE8及以上版本及大部分的主流浏览器都很好的支持。

  HTML代码

 代码如下  

<div class="img">
    <img src="../images/a-1.jpg" alt="" />
</div>

样式规则
.img{
    display:table-cell;
    vertical-align:middle;
    width:400px; height:500px;
    text-align:center;
    border:#CCC 1px solid;
}
/*IE7不支持该方法*/

  使用相对定位使元素水平和垂直居中

  利用相对定位使元素水平居中:要求元素有固定的宽度,设置元素的left:50%,这样元素的左边边界线和该元素的父级元素的水平方向的中线重合,设置margin-left,值为负的元素宽度的一半,让元素向左移动半个宽度的位置,就可以使元素水平方向的中线与父级元素的中线重合,即实现了元素的水平居中。

  举例:让一个容器元素水平居中显示,宽度:960px;

  width:960px; position:relative; left:50%; margin-left:-480px;

  上面这段代码和下面的这段代码等价,使用margin:0 auto;让元素居中,被广泛的使用,大家都很熟悉

  width:960px; margin:0 auto;

  利用相对定位使元素垂直居中:要求元素有固定的高度,设置元素的top:50%,这样元素的上边边界线和该元素的父级元素的垂直方向的中线重合,设置margin-top,值为负的元素高度的一半,让元素向上移动半个高度的位置,就可以使元素的垂直方向的中线与父级元素的中线重合,即实现了元素的垂直居中。

  以下是利用相对定位实现元素水平和垂直居中的示例,父级元素.box,该元素占据的空间宽度250px,高度150px;(计算进padding的值)

 代码如下  
.box{
    width:300px;
    height:200px;
    border:#CCC 1px solid;
}
.box span{
    display:block;
    width:240px;
    height:140px;
   
    position:relative;
    top:50%;
    left:50%;
    margin:-75px 0 0 -125px;
    padding:5px;
}

  示例要实现的效果:让span这个元素在.box中水平垂直居中,首先将span变成一个块级元素,使之水平居中可以使用margin:0 auto;这是我们常用的,在这里,我们使用相对定位来实现。

  使用line-height让单行文字垂直居中

  这种方式是我们大家经常用到的,让标题,按钮等的文字垂直居中,IE6/7/8/9/10,FF,Chrome,Safari都支持

  .

 代码如下  

box_1{ 
    width:300px;
    height:55px;
    line-height:55px;
    text-align:center;
    border:#ccc 1px solid;
}

  使用绝对定位让元素水平垂直居中

 代码如下  

.box_2{
    width:300px;
    height:200px;
    border:#CCC 1px solid;
    position:relative;
    top:0;
    left:0;
}
.box_2 span{
    display: block;
    width:240px;
    height:140px;
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    right:0;
    margin:auto;
   
    padding:5px;
}
/*IE7不支持,移动端的网页开发可以使用这种方式*/

 
 

css中元素水平垂直居中4种方法介绍的更多相关文章

  1. CSS中隐藏内容的3种方法及属性值

    CSS中隐藏内容的3种方法及属性值 (2011-02-11 13:33:59)   在制作网页时,隐藏内容也是一种比较常用的手法,它的作用一般有:隐藏文本/图片.隐藏链接.隐藏超出范围的内容.隐藏弹出 ...

  2. CSS中隐藏内容的3种方法

    CSS中隐藏内容的3种方法 一般有:隐藏文本/图片.隐藏链接.隐藏超出范围的内容.隐藏弹出层.隐藏滚动条.清除错位和浮动等. 1.使用display:none来隐藏所有内容 display:none可 ...

  3. css 实现元素水平垂直居中总结5中方法

    个人总结,如有错误请指出,有好的建议请留言.o(^▽^)o 一.margin:0 auto:text-align:center:line-height方法 <div id="divAu ...

  4. 未知宽高div水平垂直居中3种方法

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head&g ...

  5. html中元素盒子垂直居中的实现方法

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  6. css元素水平垂直居中的十种方法

    四月底在杭州金诚的前端面试过程中,问到了父元素中子元素水平和垂直居中的方式,因为平时疏于整理,只说上来两种.后来面试过了,所以现在回想到这个问题,所以针对各种情况集中整理一下. 首先看页面结构和元素的 ...

  7. CSS实现元素水平/垂直居中的方法

    首先,我们来了解水平居中,它有很多种方法,我们暂时先来了解其中的几种: 1.    在实现方案中,我们最熟悉的莫过于给元素定义一个宽度,然后使用margin: 1 2 3 4 body{     wi ...

  8. CSS中图片水平垂直居中方法小结

    写页面时难免会遇到水平垂直居中的问题,总结一下最近使用的方法. 一.使用垂直居中和水平居中 <div id="div1"> <img src="img/ ...

  9. CSS实现元素水平垂直居中—喜欢对称美,这病没得治

    [TOC] 在CSS中对元素进行水平居中是非常简单的:如果它是一个行内元素,就对它的父元素应用text-align:center;如果它是一个块级元素,就对它自身应用margin:auto.然而要对一 ...

随机推荐

  1. C陷阱与缺陷 第二章

    有关运算符优先级   1. "<<" 和 "+" data8 = data4H << 4 +data4L; 这里本意是让高四位的数据,左 ...

  2. Q_DISABLE_COPY

    QObject 中没有提供一个拷贝构造函数和赋值操作符给外界使用,其实拷贝构造和赋值的操作都是已经声明了的,但是它们被使用了Q_DISABLE_COPY() 宏放在了private区域.因此所有继承自 ...

  3. Eclipse+EPIC+PadWalker

    来源: http://www.cnblogs.com/itech/archive/2010/02/23/1671676.html http://blog.csdn.net/haoyujie/artic ...

  4. 转 由一次磁盘告警引发的血案:du 和 ls 的区别

    如果你完全不明白或者完全明白图片含义, 那么你不用继续往下看了. 否则, 这篇文章也许正是你需要的. 背景 确切地说,不是收到的自动告警短信或者邮件告诉我某机器上的磁盘满了,而是某同学人肉发现该机器写 ...

  5. php五种常用的设计模式

    php 设计模式 1.单例模式 单例模式顾名思义,就是只有一个实例.作为对象的创建模式, 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 单例模式的要点有三个: 一是某个类 ...

  6. Android中如何将Bitmap byte裸数据转换成Bitmap图片int数据

    Android中如何将Bitmap byte裸数据转换成Bitmap图片int数据 2014-06-11 10:45:14   阅读375次 我们在JNI中处理得到的BMP图片Raw数据,我们应该如何 ...

  7. Python中元素定位探讨

    以下以阿里云(10.10.1.11)系统中考试答题为例进行了python脚本的编写研究.模糊定位(定位一些动态值): ————————————————————————————————————————— ...

  8. g++ 编译c文件

    //编译c文件为.o文件 g++ -c virify.c //打包.o文件为.a静态库文件 ar crv libandroid_um36_virify.a virify.o //将静态库.a文件编译进 ...

  9. 在Activity之间使用Intent传值和Bundle传值的区别和方式

    两者本质上没有任何区别.Bundle只是一个信息的载体 将内部的内容以键值对组织 Intent负责Activity之间的交互 自己是带有一个Bundle的Intent.putExtras(Bundle ...

  10. 8--UI 初步认识 简易计算器

    UI是App的根基:一个App应该是先有UI界面,然后在UI的基础上增加实用功能(2)UI相对简单易学:UI普遍是学习过程中最简单的一块,能快速拥有成就感和学习兴趣(3)UI至关重要:开发中的绝大部分 ...