zoukankan      html  css  js  c++  java
  • 如何将一个div盒子水平垂直都居中?

    总结一下:
    1、父高未知,子高未知
    (1)margin:auto;

    // 定位会失高
    .parent{
    
    position:relative;
    
    }
    
    .child{
    
    position:absolute;
    
    margin:auto;
    
    top:0;
    
    left:0;
    
    right:0;
    
    bottom:0;
    }
    // 或者 这种不失高
    .parent{
    display:flex;
    }
    
    .child{
    margin:auto;
    }
    

    (2)利用display:table-cell

    .parent{
    
    display:table-cell;
    
    vertical-align:middle;
    
    text-align:center;
    
    }
    
    .child{
    
    display:inline-block;
    
    }
    

    (3)利用display:flex;设置垂直水平都居中;

    .parent{
    
    display:flex;
    
    justify-content:center;
    
    align-items:center;
    
    }
    

    (4)利用transform

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

    2、父高未知,子高已知(条件1的所有都可用)
    1、定位

    .parent{
    
    position:relative;
    
    }
    
    .child{
    
    position:absolute;
    
    top:50%;
    
    left:50%;
    
    margin-top:-50px;
    
    margin-left:-50px;
    
    }
    

    3、父高已知,子高已知(条件1和2的所有都可用)
    (1)计算父盒子与子盒子的空间距离(这跟方法一是一个道理);

    //计算方法:父盒子高度或者宽度的一半减去子盒子高度或者宽的的一半(200px)。
    .child{
    margin-top:200px;
    margin-left:200px;
    }
    

    (2)利用calc计算

    .parent{
    
    position:relative;
    
    }
    
    .child{
    
    position:absolute;
    
    top:calc(200px);//(父元素高-子元素高)÷ 2=200px
    
    let:calc(200px);//(父元素宽-子元素宽)÷ 2=200px
    
    }
    

    暂时记录这么多,下次继续更新
    注:方法是死的,人是活的;对于不同问题有不同的解决方式

    jjyy 兢兢业业 yyjj
  • 相关阅读:
    可变长参数
    函数的参数
    函数
    文件操作
    字符编码
    数据类型的内置方法:集合
    数据类型的内置方法:元组
    数据类型的内置方法:字典
    数据类型内置方法:列表
    js对对象引用
  • 原文地址:https://www.cnblogs.com/ljyyjj/p/12049908.html
Copyright © 2011-2022 走看看