zoukankan      html  css  js  c++  java
  • CSS的垂直居中和水平居中总结

    内联元素居中方案

    水平居中设置:

    1. 行内元素 设置 text-align:center;

    2. Flex布局 设置display:flex;justify-content:center;(灵活运用)

    垂直居中设置:

    1. 父元素高度确定的单行文本(内联元素) 设置 height = line-height;
    2. 父元素高度确定的多行文本(内联元素) a:插入 table (插入方法和水平居中一样),然后设置 vertical-align:middle; b:先设置 display:table-cell 再设置 vertical-align:middle;

      块级元素居中方案

      水平居中设置:

    3. 定宽块状元素 设置 左右 margin 值为 auto;

    4. 不定宽块状元素 a:在元素外加入 table 标签(完整的,包括 table、tbody、tr、td),该元素写在 td 内,然后设置 margin 的值为 auto; b:给该元素设置 display:inine 方法; c:父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left:50%;

    垂直居中设置:

    • 1.使用position:absolute(fixed),设置left、top、margin-left、margin-top的属性;

      .box{
      position:absolute;/*或fixed*/
      top:50%;
      left:50%;
      margin-top:-100px;
      margin-left:-200px;
      }
      • 2.利用position:fixed(absolute)属性,margin:auto这个必须不要忘记了;
    .box{
        position: absolute;或fixed
        top:0;
        right:0;
        bottom:0;
        left:0;
        margin: auto;
    }
    • 3.利用display:table-cell属性使内容垂直居中,这个方法在多行文字居中的时候用的比较多;

    HTML代码:

    <div class="box">
        <span>多行文字,此处居中设置</span>
    </div>

    CSS代码:

    .box{
        display:table-cell;
        vertical-align:middle;
        text-align:center;
        100px;
        height:120px;
        background:purple;
    }
    .box span{
        display: inline-block;
        vertical-align: middle;
    }
    • 4.使用css3的新属性transform:translate(x,y)属性;
    .box{
        position: absolute;
        top:50%;
        left:50%;
        transform: translate(-50%,-50%);
        -webkit-transform:translate(-50%,-50%);
        -moz-transform:translate(-50%,-50%);
        -ms-transform:translate(-50%,-50%);
    }
    • 5.最高大上的一种,使用before,after伪元素;

    HTML代码:

    <div class='box'>
        <div class='content'>
            垂直居中
        </div>
    </div>

    CSS代码:

    .box{
        position:fixed;
        display:block;
        background:rgba(0,0,0,.5);
    }
    .box:before{
        content:'';
        display:inline-block;
        vertical-align:middle;
        height:100%;
    }
    .box:after{
        content:'';
        display:inline-block;
        vertical-align:middle;
        height:100%;
    }
    .box .content{
        60px;
        height:60px;
        line-height:60px;
        color:red;
    }
    • 6.Flex布局;
    .box{
        display: -webkit-box;
        display: -webkit-flex;
        display: -moz-box;
        display: -moz-flex;
        display: -ms-flexbox;
        display: flex;
        水平居中
        -webkit-box-align: center;
        -moz-box-align: center;
        -ms-flex-pack:center;
        -webkit-justify-content: center;
        -moz-justify-content: center;
        justify-content: center;
         垂直居中
        -webkit-box-pack: center;
        -moz-box-pack: center;
        -ms-flex-align:center;
        -webkit-align-items: center;
        -moz-align-items: center;
        align-items: center;
    }
  • 相关阅读:
    Uncaught DOMException: Failed to read the 'sessionStorage' property from 'Window': Access is denied for this document. 打包vue dist到外网,无法访问
    linux find 命令
    CentOS提示 Failed to set locale, defaulting to C的解决方法
    JSP页面上添加Fckeditor
    对自己成为程序员的要求
    数组举例
    Java中构造方法被别封装后的调用
    JS读取/创建本地文件及目录文件夹的方法
    初学SSH(struts+spring+hibernate)的纠结问题
    POI Excel文件XSSF导入知识点
  • 原文地址:https://www.cnblogs.com/chen-cheng/p/6133966.html
Copyright © 2011-2022 走看看