1. vartical-align
      vartical-align可以设置行内元素和表格单元格(table-cell)垂直对方式,所以如果元素是行内元素或者表格的话,可以直接应用这个属性对内容进行对齐设置。如果是块级元素,需要将元素的display设置为table-cell,然后使用vartical-align=center
    blockElement{
         display:table-cell;
      vartical-align:center;
     }
    缺点:table-cell是css3中的属性,所以根据平台的不容可能会有兼容性的问题。具体兼容程序可以在caniuse网站查询。
  2. align-items
    align-items是设置伸缩盒中的元素在cross axis(侧轴)方向的放置方式。
    通过设置display:flex和align-items:center就可以实现将元素居中。
    element{
      display:flex;
           align-items:center;
    }
    缺点:同样是兼容性问题
  3. justify-content
    justify-content是设置伸缩盒中的元素在main axis(主轴)方向的放置方法。主轴是从左到右的,但是通过将flex-direction设置为column可以将主轴改变为上下方向。然后使用justify-content将元素居中。
      element{
                display: flex;
                flex-direction: column;
                justify-content: center;
            }
  4. 绝对定位与相对定位
      同时使用父元素和子元素的高度,将父元素设置为相对定位,子元素设置为绝对定位。然后通过设置top或bottom值,就可以轻易的将子元素居中;
    fatherElement{
      pisition:relative;/*相对定位*/
      height:number;
    }
    element{
          position:absolute; /*绝对定位*/
        top:number;
    }
    缺点:这种情况的前提就是必须已知父元素和子元素的高度,然后根据差值计算。
  5. 绝对定位和负外边距
           这种情况跟上面的区别就是只使用子元素的高度。设置绝对定位的元素top值为50%,子元素的上边缘位于父元素的50%高度,然后使用负外边距将元素向上移动一般子元素高度
    fatherElement{
      position:relative;
    }
    element{
      position:absolute;
           top:50%;
           margin-top:-number;/*负值,值为子元素的二分之一高度*/
    }
    缺点:必须知道被居中元素的尺寸;
  6. 绝对定位和transform的translate
    这个方法与上一个方法一处不同,就是在设置了top为50%之后,如何将元素向上移动自身高度的一半。css3中的transform转换有移动函数translate(x,y),x和y既可以为数值,也可以为百分数;如果是百分数,表示自身高度*百分数,所以
    fatherElement{
      position:relative;
    }
    element{
      position:absolute;
           top:50%;
      transform:translate(0,-50%);
    }
  7. 绝对定位和margin:auto
    绝对定位的前提下,设置相同的top和bottom值,然后使用margin:auto,可以使元素居中。
    fatherElement{
      position:relative;
    }
    element{
      position:absolute;
           top:0;
      bottom:0;
      margin:auto;
    }
    这里必须在绝对定位之后,对top和bottom进行赋值,值是多少无所谓,但是必须相等。然后使用margin为auto即可实现居中。
  8. padding
    这个道理很简单,就是设置相同的上下内边距,从而使子元素居中。
    #divFather{
            width: 400px;
            padding:10px 0;
        }
        #divFather>div{
            width: 100px;
            height: 100px;
        }
      在没有对父元素设置高度的时候,这个居中实质上是等距离加大padding,从而让元素看起来就是居中的,父元素的内容区高度就是子元素的高度。
  9. 使用line-height对单行文本进行居中
    设置line-height与容器的高度相同,可以使单行文本居中
    div{
            width: 400px;
            height: 200px;
            line-height: 200px;
        }
  10. 使用line-height和vertical-align对图片进行居中
    <div>
      <img>
    </div>
    div{
        width: 300px;
        height: 300px;
        background: #ddd;
        line-height: 300px;
    }
    div img {
        vertical-align: middle;
    }

使用css实现垂直居中的更多相关文章

  1. 五种方法让CSS实现垂直居中

    利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法.我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站. 使用 CSS 实现垂直居中并不容易.有些方法在一些浏览器 ...

  2. CSS实现垂直居中的5种方法

    利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法.我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站. 使用 CSS 实现垂直居中并不容易.有些方法在一些浏览器 ...

  3. CSS水平垂直居中总结

    行内元素水平居中 把行内元素包裹在块级父元素中,且父元素中的css设置text-align:center; <!DOCTYPE html> <html> <head> ...

  4. css图片垂直居中

    css图片垂直居中一.style代码 .case-pic{ height: 125px; position: relative; text-align: center } .case-pic span ...

  5. 转: css实现垂直居中的方法

    利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法.我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站. 用 CSS 实现垂直居中并不容易.有些方法在一些浏览器中 ...

  6. 纯CSS实现垂直居中的7种方法

    今天申请博客通过了,给大家讲讲我所看到过的纯css实现垂直居中的各种方法.为什么要把它作为第一篇文章呢?因为这是我刚开始接触前端学到的对我最有用的知识,希望大家也可以从中获益! 在CSS中实现水平居中 ...

  7. CSS文字垂直居中的一些问题

    说到CSS文字垂直居中,很多初学者都喜欢用调整行高等于div高度的方式来达到效果, div { height:30px; line-height:30px; } 但其实这么做会遇到一个问题:多行文本溢 ...

  8. CSS布局-垂直居中问题

    在前端页面的布局方面,很多时候需要用到垂直居中,如果父集元素或子元素的高度是固定的那么垂直居中可以用line-height或者定位 top:50%:margin-top:- height/2 px:实 ...

  9. 顽石系列:CSS实现垂直居中的五种方法

    顽石系列:CSS实现垂直居中的五种方法 在开发过程中,我们可能沿用或者试探性地去使用某种方法实现元素居中,但是对各种居中方法的以及使用场景很不清晰.参考的内容链接大概如下: 行内元素:https:// ...

  10. css 文字垂直居中问题

    CSS 文字垂直居中问题 问题:在 div 中文字居中问题: 当使用 line-height:100%%; 时,文字没有居中,如下: html: <div id="header_log ...

随机推荐

  1. oracle 密码默认180天过期

    alter profile default limit password_life_time unlimited; alter user username identified by 'pwd';

  2. redis学习二 排序

    文章转载自:http://www.cnblogs.com/redcreen/archive/2011/02/15/1955226.html redis支持对list,set和sorted set元素的 ...

  3. elastic(8)版本控制

    转自: http://www.cnblogs.com/AK47Sonic/p/7563393.html elasticsearch 版本控制: 内部版本控制 外部版本控制 内部版本控制: 内部版本会检 ...

  4. python爬虫(3)--异常处理

    1.URLError 首先解释下URLError可能产生的原因: 网络无连接,即本机无法上网 连接不到特定的服务器 服务器不存在 在代码中,我们需要用try-except语句来包围并捕获相应的异常. ...

  5. linux系统 使用git图形化管理工具———gitk

    运行安装命令: sudo apt-get install gitk 运行命令打开gitk : gitk

  6. hibernateTemplate方法使用

  7. 3-2 zk客户端连接关闭服务端,查看znode

    使用ZooKeeper官方提供的Client来连接.路径类似的结构. 连接到我们的门户HOST. quota属于zookeeper.quota是子节点,zookeeper是父节点.quota其实是一个 ...

  8. 面试题:AOP面向切面编程

    //创建一个与代理对象相关联的InvocationHandler InvocationHandler stuHandler = new MyInvocationHandler<Person> ...

  9. ARC102D All Your Paths are Different Lengths

    传送门 题目大意 让你构造一个有向图,使得从1到n有L条不同路径且长度分别是0~L-1. 分析 我们不难想到每一对相邻点之间连一条权值为0的边,之后二进制分解,将每一对点之间连一个权值为2^i的边,但 ...

  10. python常用uuid模块

    uuid.uuid4(),会根据我们当前的网卡和时间生成的一个随机字符串. 注意:uuid.uuid4()生成的是一个对象,需要强转为字符串. uid = str(uuid.uuid4()) #当前网 ...