• div块元素垂直水平居中方法总结


    1、已知块级元素的宽和高,使用绝对定位+外边距设定水平垂直居中。

    父元素position:relative,子元素position:absolute;top:50%;left:50%;margin-top:-height/2;margin-left:-width/2;

    效果图如下

    代码:

    <div class="box">
        <div class="center-box1">
            <p>【第一种方法】知道长和宽,使用绝对定位+外边距设定水平垂直居中</p>
        </div>
    </div>
    
    .box {
        background: #6c94be;
         100%;
        height: 450px;
        position: relative;  
    }
    .center-box1 {
        position: absolute;
        top: 50%;
        left: 50%;
        margin-top: -100px;
        margin-left: -100px;
         200px;
        height: 200px;
        background: #5B83AD;
    }

    2、使用css3样式属性display:flex设定水平垂直居中,父元素样式属性display:flex;子元素使用margin:auto;未知子元素高度的时候依然可以使用。

    一般chrome和火狐都能很好地支持。ie不支持

    效果图如下:

    代码:

    <div class="box">    
        <div class="center-box2">
            <p>【第二种方法】使用css3样式属性display:flex设定水平垂直居中</p>
        </div>
    </div>
    
    .box {
        background: #6c94be;
         100%;
        height: 450px;
        display: flex;
    }
    .center-box2 {
        margin: auto;
         200px;
        background: #5B83AD;
    }

    3、依然使用绝对定位+css3样式属性transform

    transform中translate偏移的百分比值是相对于自身大小的,无论绝对定位元素的尺寸是多少,其都是水平垂直居中显示的,但问题是兼容性不好。IE9+以及其他现代浏览器才支持。IE9之前版本不支持,在IE8模式下,不居中。

    效果图如下:

    代码:

    <div class="box">    
        <div class="center-box3">
            <p>【第三种方法】使用css3样式属性transform,transform中translate偏移的百分比值是相对于自身大小的</p>
        </div>
    </div>
    
    .box {
        background: #6c94be;
         100%;
        height: 450px;
        position: relative;  
    }
    
    .center-box3 {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);
        background: #5B83AD;
         200px;
    }

     4、已知块级元素的宽和高,设置其样式属性position:absolute;top:0;left:0;bottom:0;right:0;+margin:auto;

    效果图如下:

    代码:

    <div class="box">    
        <div class="center-box4">
            <p>【第四种方法】已知宽和高,绝对定位+margin:auto;</p>
        </div>
    </div>
    
    .box {
        background: #6c94be;
         100%;
        height: 450px;
        position: relative;
    }
    .center-box4 {
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
         200px;
        height: 200px;
        background: #5B83AD;
        margin: auto;
    }

    未完待续...

  • 相关阅读:
    58:二叉树的下一个节点
    57:删除链表中重复的结点
    56:链表中环的入口结点
    55:字符流中第一个不重复的字符
    54:表示数值的字符串
    53:正则表达式匹配
    52:构建成绩数组
    51:数组中重复的数字
    每个努力奋斗过的人,被不公正的际遇砸了满头包的时候,都有那么一瞬间的代入感。出生就是hard模式的人,早已经历了太多的劳其筋骨饿其体肤,再多的人为考验只会摧毁人对美好的向往。
    ClientValidationEnabled
  • 原文地址:https://www.cnblogs.com/Youngly/p/6796922.html
Copyright © 2020-2023  润新知