zoukankan      html  css  js  c++  java
  • CSS居中实现完整攻略

    1) 行内元素(水平居中)解决方案

    只需要把行内元素包裹在一个属性display为block的父层元素中,并且把父层元素添加如下属性即可:text-align: center

    适用元素:文字,链接,及其其它inline或者inline-*类型元素(inline-block,inline-table,inline-flex)

    2)块状元素(水平居中解决方案

    对于块状元素(display:block)来说,我们需要将它的左右外边距(即,margin-left,margin-right)设置为auto,即可实现块状元素的居中,如下:

    .center{
    /* 这里可以设置顶端外边距 */
    margin: 10px auto;
    }

    3)多个块状元素(水平排列居中)解决方案

    如果页面里有多个块状元素需要水平排列居中,可以将元素的display属性设置为inline-block,并且把父元素的text-align属性设置为center即可实现

    /*
    
    解决方案:
    
    设置这几个块状的元素display属性为inline-block,并且设置父元素text-align属性为center即可
    
    */
    
    .center{
      display:inline-block;
    }
    
    body{
      text-align:center;
    }

    4)水平居中:多个块状元素解决方案 (使用flexbox布局实现)

    使用flexbox布局,只需要把待处理的块状元素的父元素添加属性display:flexjustify-content:center即可

    /*
    
    解决方案:
    
    设置需要水平居中的块状元素的父元素display为flex ,并且justify-content属性为center即可
    
    */
    
    
    body{
      display: flex;
      justify-content: center;
    }
    
    /* 页面美化元素 */
    
    div{
      width: 100px;
      background: #222;
      height: 50px;
      color: #FFF;
      padding: 10px;
      margin: 10px;
    }

    5)垂直居中:单行的行内元素解决方案

    当一个行内元素,即inline,inline-*类型的元素需要居中的话,可以将它的height和line-height同时设置为父元素的高度即可实现垂直居中效果。

    #container{
      background: #222;
      height: 200px;
    }
    /*  以下代码中,将a元素的height和line-height设置的和父元素一样高度即可实现垂直居中 */
    a{
      
      height: 200px;
      line-height:200px;  
      color: #FFF;
    }

    6)垂直居中:多行的行内元素解决方案

    组合使用display:table-cell和vertical-align:middle属性来定义需要居中的元素的父容器元素生成效果,如下:

    .container{
      background: #222;
      width: 300px;
      height: 300px;
      /* 以下属性垂直居中 */
      display: table-cell;
      vertical-align:middle;
    }

    7)垂直居中:已知高度的块状元素解决方案

    将待居中元素设置为绝对定位,并且设置margin-top为居中元素高度一半的负值

    定义居中元素的相关属性,如下:

    /* 以下为居中代码 */
    .item{
      top: 50%;
      margin-top: -50px;
      position: absolute;
      padding:0;
    }

    8)垂直居中:未知高度的块状元素解决方案

    对于无法知道高度的元素,使用transform属性来垂直移动来实现垂直居中:

    .item{
      top: 50%;
      position: absolute;
      transform: translateY(-50%); /* 这里我们使用css3的transform来达到类似效果 */
    }

    9)水平垂直居中:已知高度和宽度的元素解决方案

    类似我们前面学到的方法,我们可以设置元素定位为absolute,并且设置top, left绝对值为50%margin-top和margin-left为元素高度一半的负值即可,如下:

    .item{
      position: absolute;
      top: 50%;
      left: 50%;
      margin-top: -75px;
      margin-left: -75px;
    }

    10)水平垂直居中未知高度和宽度元素解决方案

    使用类似的transform属性来定义,即可实现,如下:

    .item{
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }

    11)水平垂直居中:使用flex布局实现

    .parent{
      display: flex;
      justify-content:center;
      align-items: center;
      
      /* 注意这里需要设置高度来查看垂直居中效果 */
      background: #AAA;
      height: 300px;
    }

    友情链接-->极客标签

  • 相关阅读:
    MVC框架简介
    模型-视图-控制器模式
    高德地图基本开发
    质量属性的六个常见属性场景分析
    架构漫谈读后感
    第十周
    第九周总结
    第八周总结
    springboot基于mybatis的pegehelper分页插件
    webmagic之爬取数据存储为TXT
  • 原文地址:https://www.cnblogs.com/dhuhewang/p/6529729.html
Copyright © 2011-2022 走看看