如何让设置浮动的元素水平垂直居中

Posted 一抹夏忧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让设置浮动的元素水平垂直居中相关的知识,希望对你有一定的参考价值。

1.多个子元素同时设置浮动后,欲想实现水平垂直居中,实现代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .clearFix::after{
            display:block;
            clear:both;
            content:"";
            visibility:hidden;
            height:0;
           
        }
        .clearFix{
            zoom: 1;
        }
        .container{
            width: 100%;
            height: 800px;
            background-color: blue;
            /* 水平垂直居中 */
            position: relative;
        }
        .child1{
            width:200px;
            height:200px;
            background-color: red;
        }
        .child2{
            width:200px;
            height: 200px;
            background-color: goldenrod;
        }
        .lf{
            float: left;
        }
        /* 水平垂直居中 */
        .box{
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%,-50%);
        }
    </style>
</head>
<body>
    <div class="container clearFix">
        <div class="box clearFix">
            <div class="child1 lf">child1</div>
            <div class="child2 lf">child2</div>
        </div>
    </div>
</body>
</html>

2.使用flex布局(有兼容性)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .clearFix::after{
            display:block;
            clear:both;
            content:"";
            visibility:hidden;
            height:0
        }
        .clearFix{
            zoom: 1;
        }
        .container{
            width: 100%;
            height: 800px;
            background-color: blue;
            
            display: flex;
            /* 垂直居中 */
            align-items: center;
            /* 水平居中 */
            justify-content:center;
        }
        .child1{
            width:200px;
            height:200px;
            background-color: red;
        }
        .child2{
            width:200px;
            height: 200px;
            background-color: goldenrod;
        }
        .lf{
            float: left;
        }
    </style>
</head>
<body>
    <div class="container clearFix">
        <div class="child1 lf">child1</div>
        <div class="child2 lf">child2</div>
    </div>
</body>
</html>

3.垂直居中使用display: table-cell; vertical-align: middle; 水平居中:嵌套一层div,设置宽度为子元素宽度,在设置margin: 0 auto;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .clearFix::after{
            display:block;
            clear:both;
            content:"";
            visibility:hidden;
            height:0;
           
        }
        .clearFix{
            zoom: 1;
        }
        .container{
            width: 600px;
            height: 800px;
            background-color: blue;
            /* 水平垂直居中 */
            display: table-cell;
            vertical-align: middle;
        }
        .child1{
            width:200px;
            height:200px;
            background-color: red;
        }
        .child2{
            width:200px;
            height: 200px;
            background-color: goldenrod;
        }
        .lf{
            float: left;
        }
        /* 水平垂直居中 */  
        .box{
            width:400px;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    <div class="container clearFix">
        <div class="box clearFix">
            <div class="child1 lf">child1</div>
            <div class="child2 lf">child2</div>
        </div>
    </div>
</body>
</html>

以上是关于如何让设置浮动的元素水平垂直居中的主要内容,如果未能解决你的问题,请参考以下文章

如何让设置浮动的元素垂直居中

用CSS 实现元素垂直居中,都有哪些好的方案

Web前端面试指导(十四):如何居中一个元素(正常绝对定位浮动元素)?

Web前端面试指导(十四):如何居中一个元素(正常绝对定位浮动元素)?

Web前端面试指导(十四):如何居中一个元素(正常绝对定位浮动元素)?

关于flex布局垂直居中