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

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>

原文地址:https://www.cnblogs.com/web-record/p/9144359.html

时间: 2024-10-23 12:50:19

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

《转》CSS元素水平垂直居中方法总结(主要对大漠以及张鑫旭博客所述方法进行了归纳)

转自大地Dudy的CSS元素水平垂直居中方法总结(主要对大漠以及张鑫旭博客所述方法进行了归纳) 本文主要是对主流居中方法进行了归纳,有些地方甚至就是把别人的代码直接复制过来的,没有什么自己的东西,除了大漠以及张鑫旭的方法外,还有来自司徒正美.怿飞博客的几个方法 以下方法,由于测试环境的原因,IE系列只测试了IE9和IE6,以下所说的IE的支持性只是相对于IE9和IE6来说的: 一.元素的水平垂直居中: 第一种方法: <!doctype html> <html lang="en&

css 实现元素水平垂直居中总结5中方法

个人总结,如有错误请指出,有好的建议请留言.o(^▽^)o 一.margin:0 auto:text-align:center:line-height方法 1 <div id="divAuto">margin,text-align;水平居中</div> 1 /* 2 margin:0 auto; 设置块元素(或与之类似的元素)的水平居中 3 text-align:center;设置文本或img标签等一些内联对象(或与之类似的元素)的水平居中 4 line-hei

CSS元素水平垂直居中方法总结(方法主要来自大漠以及张鑫旭博客)

以下方法,由于测试环境的原因,IE系列只测试了IE9和IE6,以下所说IE的支持性只是相对于IE9和IE6来说的: 一.元素的水平垂直居中: 第一种方法:<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"&g

总结:前端开发中让元素水平垂直居中的方法

前端开发中,我们经常需要对元素进行水平垂直居中.为此,小编特地总结了让元素居中的方法. 水平居中text-align:center; 这个是没有浮动的情况下,我们可以先将要居中的块级元素设为inline/inline-block,然后在其父元素上加上属性text-align:center;即可.如果要居中的块级元素直接是内联元素(span.img.a等),直接在其父级元素上加上属性text-align:center;即可: .way { border: 1px solid red; width:

未知宽高的元素水平垂直居中方法总结

1.父元素设置display:table;子元素设置display:table-cell; 缺点:IE7不支持,而且子元素会填满父元素,不建议使用 2.使用css3 transform:translate(-50%; -50%) 缺点:兼容性不好,IE9+ 3.使用flex布局 缺点:兼容性不好,IE9+ 4.利用伪类元素 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U

使元素相对于窗口或父元素水平垂直居中的几种方法

如果一个元素具有固定或相对大小,要使其不管如何调整窗口大小或滚动页面,始终位于浏览器窗口中间,可使用如下方法: <!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title><meta charset="utf-8&q

CSS未知宽高元素水平垂直居中

方法一 思路:显示设置父元素为:table,子元素为:cell-table,这样就可以使用vertical-align: center,实现水平居中优点:父元素(parent)可以动态的改变高度(table元素的特性)缺点:IE8以下不支持 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>未知宽高元素水平垂直居中&l

未知尺寸元素水平垂直居中:

浏览器参照基准:Firefox, Chrome, Safari, Opera, IE * 该未知尺寸元素水平垂直居中方案基于 inline-block 元素的 vertical-align:middle 特性实现,在这里需要对 line box 及 vertical-align 的应用情况有一定的了解 /*水平居中*/ text-align:center vertical-align知识点 vertical-align适用于 inline level, inline-block level 及

未知宽高元素水平垂直居中

一.transform <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <!--方法1:一个未知宽高的弹出框,水平垂直居中--> <div style="position:relative;width:100%;height:600px;border:1px solid #888">