• CSS水平垂直居中总结


    行内元素水平居中

    把行内元素包裹在块级父元素中,且父元素中的css设置text-align:center;

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8">
        <title>css水平垂直居中</title>
        <style>
            body{background:#000;}
            #container{
                background: #ccc;
                text-align: center;
            }
        </style>
    </head>
    <body>
    <div id="container">行内元素水平居中</div>
    </body>
    </html>

    image

    块状元素水平居中

    将块状元素的左右外边距设置为auto即可。

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8">
        <title>块状元素水平居中</title>
        <style>
            body{background:#000;}
            #container{
                background: #ccc;
    
            }
            #box1{
                width:300px;
                height:300px;
                background:#fff;
                margin: 0 auto;
                text-align: center;
            }
        </style>
    </head>
    <body>
    <div id="container">
        <div id="box1">块状元素水平居中</div>
    </div>
    </body>
    </html>

    image

    多个块状元素水平居中的情况:

    1、传统方法:将水平排列的块状元素设置为:display:inline-block;然后父元素设置为text-align:center;即可。

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8">
        <title>多个块状元素水平居中</title>
        <style>
            body{background:#000;}
            #container{
                background: #ccc;
                text-align: center;
            }
            .box1{
                width:300px;
                height:300px;
                background:#fff;
                display: inline-block;
            }
        </style>
    </head>
    <body>
    <div id="container">
        <div class="box1">块状元素水平居中</div>
        <div class="box1">块状元素水平居中</div>
        <div class="box1">块状元素水平居中</div>
    </div>
    </body>
    </html>

    image

    2、使用弹性盒子:将父元素设置为display:-webkit-box;-webkit-box-pack:justify(或center);注意兼容性

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8">
        <title>多个块状元素水平居中</title>
        <style>
            body{background:#000;}
            #container{
                background: #ccc;
                display: -webkit-box;
                -webkit-box-pack:justify;/*box-pack决定了父元素水平空间的使用*/
            }
            .box1{
                width:300px;
                height:300px;
                background:#fff;
            }
        </style>
    </head>
    <body>
    <div id="container">
        <div class="box1">块状元素水平居中</div>
        <div class="box1">块状元素水平居中</div>
        <div class="box1">块状元素水平居中</div>
    </div>
    </body>
    </html>

    image

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

    1、绝对定位与margin

    这个方法使用了position:absolute;有固定宽高的div,被设置为top:0;bottom:0;因为它有固定高度,不能与上下的间距都为0,margin:auto;会使它居中。

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8">
        <title>多个块状元素水平居中</title>
        <style>
            body{background:#000;}
            #container{
                background: #ccc;
                position: relative;
                width:1000px;
                height:500px;
            }
            .box1{
                position: absolute;
                background:#fff;
                width: 300px;
                height: 300px;
                top: 0;
                left: 0;
                bottom: 0;
                right: 0;
                margin: auto;
    
            }
        </style>
    </head>
    <body>
    <div id="container">
        <div class="box1">已知元素宽高水平垂直居中</div>
    </div>
    </body>
    </html>

    image

    2、绝对定位与margin负值

    利用绝对定位,将元素的top、left值设为50%,然后设置外边距margin-left:width/2;margin-top:height/2;实现垂直居中效果

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8">
        <title>多个块状元素水平居中</title>
        <style>
            body{background:#000;}
            #container{
                background: #ccc;
                position: relative;
                width:1000px;
                height:500px;
            }
            .box1{
                position: absolute;
                background:#fff;
                width: 300px;
                height: 300px;
                top: 50%;
                left: 50%;
                margin-left:-150px;
                margin-top:-150px;
            }
        </style>
    </head>
    <body>
    <div id="container">
        <div class="box1">已知元素宽高水平垂直居中</div>
    </div>
    </body>
    </html>

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

    1、把div的显示方式设置为表格,使用表格的vertical-align属性

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title>未知宽高的元素水平垂直居中</title>
        <style>
            body{background: #000;font-size: 24px;}
            #wrapper{
                display: table;
                background: #ccc;
                width: 1000px;
                height:300px;
    
            }
            #cell{
                display: table-cell;
                text-align: center;
                vertical-align: middle;
            }
        </style>
    </head>
    <body>
    <div id="wrapper">
        <div id="cell">
            <div class="content">未知宽高的元素水平垂直居中</div>
        </div>
    </div>
    </body>
    </html>

    image

    2、跟上面提到的多个块状元素水平居中的用法差不多,这里用到弹性盒子是要注意浏览器的兼容性;(这里被居中元素的宽度由其里面的内容决定)

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title>未知宽高的元素水平垂直居中</title>
        <style>
            body{background: #000;font-size: 24px;}
            #container{
                margin:30px auto;
                background: #ccc;
                width: 1000px;
                height:300px;
                display: -webkit-box;
                -webkit-box-pack:center;
            }
            #container .box1{
                background: red;
            }
            #container .box2{
                background: green;
            }
            #container .box3{
                background: yellow;
            }
        </style>
    </head>
    <body>
    <div id="container">
        <div class="box1">未知宽高的元素水平垂直居中</div>
        <div class="box2">未知宽高的元素水平垂直居中</div>
        <div class="box3">未知宽高的元素水平垂直居中</div>
    </div>
    </body>
    </html>

    image

  • 相关阅读:
    bower使用记录
    前端生成二维码
    删除顽固node_modules
    vue初体验:实现一个增删查改成绩单
    H5常用代码:适配方案5
    H5常用代码:适配方案4
    H5常用代码:适配方案3
    ARFA 教堂的第四次洗礼&斜率优化重学
    CSP考前总结&周二晚+周三晚模拟考总结&洛谷11月月赛 III Div.1总结
    T44253 绝美的挣扎 题解
  • 原文地址:https://www.cnblogs.com/jnslove/p/6059663.html
Copyright © 2020-2023  润新知