首先,我们来了解水平居中,它有很多种方法,我们暂时先来了解其中的几种:

1.    在实现方案中,我们最熟悉的莫过于给元素定义一个宽度,然后使用margin:

1
2
3
4
body{
    width:960px;
    margin:0 auto;
}

这个是当我们的定义元素的宽度时显现的,如果我们不能定义宽度时,该怎么办呢?

2.    我们对于定位也是常用的,在这里当然也可以采用定位的方法来实现:

1
2
3
4
body{
    position:absolute;
    left:50%;
}

3.   既然定位可以,那浮动也是可以的:

1
2
3
4
body{
    float:left;
    right:50%;
}

4.    对于几个元素同时居中在一条线上:

1
2
3
body{
   vertical-align:middle; 
}

5.    利用table:

1
2
3
4
5
6
ul{
    display:table;
}
ul li{
    display:table-cell;
}

6.    还可以使用inline-block来实现,但要使用这个就得在其父元素上设置text-align.如下:

1
2
3
4
5
6
body{
    text-align:center;
}
.content{
    display:inline-block;
}

实现垂直居中的四种方法:

1.    只能是单行文本居中(可适用于所有浏览器):

1
2
3
4
.content{
   height:100px;
   line-height:100px; 
}

2.    跟水平居中一样,垂直也可以用定位的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
.content{
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    right:0;
    margin:auto;
}
或者
.content{
    position:absolute;
    top:50%;
}

定位的方法,它的缺点是当没有足够的空间时,元素会消失。

3.    对此,浮动也是可以的:

1
2
3
4
5
6
7
8
9
10
.content{
    float:left;
     top:50%; 
     margin-bottom:-120px;
}
.footer{
    clear:both;
    height:240px;
    position:relative;
}

对于浮动,我们需要在之后清除,并显示在中间。

4.    也可以使用vertical-align属性:

1
2
3
4
.content{
    display:table-cell;
    vertical-align:middle;
}

这种方法可以随意改变元素高度,但在IE8中无效。

现在来看个div模块在屏幕中居中的例子:

1
2
3
4
5
position: absolute;  top: 50%;  left: 50%;   //上下移动屏幕的50%
margin: auto;
-webkit-transform: translate(-50%,-50%);     //减去自身的50%(多移动的)
-ms-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);

这个基本可以不确定宽高的模块居中,但是在低版本的浏览器中可能出现问题,现在还没测试过,但是主流的都是可以的!

CSS实现元素水平/垂直居中的方法的更多相关文章

  1. css中元素水平垂直居中4种方法介绍

    table-cell轻松设置文本图片水平垂直居中 让一个元素垂直居中的思路:把这个元素的容器设置为table-cell,也就是具有表格单元格的特性,再使用vertical-align(这个属性对blo ...

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

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

  3. CSS元素水平垂直居中的方法

    1.  元素水平居中 1.1  设置父元素的属性 text-align: center; 说明:此属性只针对父元素的子元素为内联元素时有效,比如:img,input,select,button等(行内 ...

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

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

  5. css:元素水平垂直居中的多种方式

    CSS元素(文本.图片)水平垂直居中方法   1.text-align:center; 2.margin:0 auto; 3.display:inline-block; + text-align:ce ...

  6. css 常用的绝对定位元素水平垂直居中的方法

    两种方法都能够实现: 1. div { height:80%; /*一定要设置高度*/ overflow:hidden;/*建议设置*/ margin: auto; position: absolut ...

  7. css实现块级元素水平垂直居中的方法?

    父级给相对定位,子级给绝对定位,margin设置为auto,上下左右值设为0. 父级给相对定位,子级给绝对定位,设置left和top为50%,再向左和向上移动负的子级一半. 父级设置display:f ...

  8. CSS实现元素水平垂直居中

    我们知道,实现元素的水平居中比较简单,在设置了宽度后,设置左右margin为auto就可以. 但是如何设置元素垂直居中呢? 当然,对于单行的文字,可以通过设置line-height来解决, 可以对于一 ...

  9. css控制元素 水平垂直居中

    控制元素居中核心代码为 position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin: auto; css: /* 容器 */ .w ...

随机推荐

  1. jQuery如何判断元素是否是隐藏的?

    jQuery函数简介: is(expr) 用一个表达式来检查当前选择的元素集合,如果其中至少有一个元素符合这个给定的表达式就返回true. 如果没有元素符合,或者表达式无效,都返回'false'. 注 ...

  2. Mac Pro 编译安装 Redis-3.2.3

    Redis官方下载地址:http://redis.io/download Redis安装 cd /usr/local/src/redis-3.2.3 sudo make sudo make insta ...

  3. T-SQL备忘-表连接更新

    1.update a inner join b on a.id=b.id set a.name=b.name where ...   2.update table1 set a.name = b.na ...

  4. ICP 算法

    ICP 算法是一种点云到点云的配准方法. 在SLAM中通过空间点云的配准(可以通过相机或者3D激光雷达获取点云数据),可以估计相机运动(机器人运动,旋转矩阵R与平移向量t),累积配准,并不断回环检测, ...

  5. dos 下删除文件、文件夹

    删除文件 /p 删除每一个文件之前提示确认/f 强制删除只读文件 /s 从当前目录及所有子目录删除指定文件/q 安静模式.删除全局通配符时,不要求确认/a 根据属性选择要删除的文件 指定下列文件属性中 ...

  6. python Function

    Python 2.7.10 (default, Oct 14 2015, 16:09:02) [GCC 5.2.1 20151010] on linux2 Type "copyright&q ...

  7. 前端开发必备!Emmet语法

    使用方法 emmet的使用方法也非常简单,以sublime text为例,直接在编辑器中输入HTML或CSS的代码的缩写,然后按tab键就可以拓展为完整的代码片段.(如果与已有的快捷键有冲突的话,可以 ...

  8. iOS整体框架类图

    Cocoa是OS X和iOS操作系统的程序的运行环境. iOS的操作系统层次结构分为四层:触摸UI层,媒体层,核心服务层,核心OS层.其中底层框架提供iOS的基本服务和技术,高层次框架简历在低层次框架 ...

  9. des (C语言)

    /** * \file des.h * * \brief DES block cipher * * Copyright (C) 2006-2010, Brainspark B.V. * * This ...

  10. JMeter遇到的问题一:Error writing to server(转)

    Java.io.IOException: Error writing to server异常:我测试500个并发时,系统没有问题:可当我把线程数加到800时,就出现错误了,在"查看结果树&q ...