美文网首页全栈笔记
div 居中方法汇总

div 居中方法汇总

作者: 小贤笔记 | 来源:发表于2018-07-19 15:03 被阅读1次

    情况一: 父子容器宽高已知

    方法一

    • html
    <div class="father">
        <div class="son"></div>
    </div>
    
    • css
    .father {
        position: relative;
        width: 1000px;
        height: 600px;
        background: lightblue;
    }
    .son {
        position: absolute;
        width: 100px;
        height: 100px;
        background: yellow;
        top: 50%;
        margin-top: -50px; /* 高度的一半 */
        left: 50%;
        margin-left: -50px; /* 宽度的一半 */
    }
    

    方法二

    利用 margin: auto; 自动分配多余空间

    • html
    <div class="father">
        <div class="son"></div>
    </div>
    
    • css
    .father {
        position: relative;
        width: 1000px;
        height: 600px;
        background: lightblue;
    }
    .son {
        position: absolute;
        width: 100px;
        height: 100px;
        background: yellow;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        margin: auto;
    }
    

    top、left、right、bottom 的值相等即可,不一定要都是0

    方法三

    用 Flex 布局

    • html
    <div class="father">
        <div class="son"></div>
    </div>
    
    • css
    .father {
        width: 1000px;
        height: 600px;
        background: lightblue;
        display: flex;
        align-items: center; /* 垂直居中 */
        justify-content: center; /* 水平居中 */
    }
    .son {
        width: 100px;
        height: 100px;
        background: yellow;
    }
    

    情况二: 父子容器宽高未知

    方法一

    • html
    <div class="father">
        <div class="son"></div>
    </div>
    
    • css
    .father {
        position: relative;
        width: 1000px;
        height: 600px;
        background: lightblue;
    }
    .son {
        position: absolute;
        width: 100px;
        height: 100px;
        background: yellow;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
    

    方法二

    用 Flex 布局

    • html
    <div class="father">
        <div class="son"></div>
    </div>
    
    • css
    .father {
        width: 1000px;
        height: 600px;
        background: lightblue;
        display: flex;
        align-items: center; /* 垂直居中 */
        justify-content: center; /* 水平居中 */
    }
    .son {
        width: 100px;
        height: 100px;
        background: yellow;
    }
    

    还有其他方法的小伙伴们欢迎补充, 我会将你的名字写上去, 谢谢!

    相关文章

      网友评论

      本文标题:div 居中方法汇总

      本文链接:https://www.haomeiwen.com/subject/rirtmftx.html