zoukankan      html  css  js  c++  java
  • CSS实现水平垂直居中方式

    1、定位

    核心代码实现请看示例代码中的注释:

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>CSS水平垂直居中实现方式--定位实现</title>
            <style type="text/css">
                *{
                    margin: 0;
                    padding: 0;    
                }
                .p{
                    /*父元素为除了static以外的定位方式*/
                    position: relative;
                    /*position: absolute;*/
                    /*position: fixed;*/
                    width: 500px;
                    height: 500px;
                    border: 1px solid red;
                }
                .c{
                    /*子元素为绝对定位*/
                    position: absolute;
                    width: 200px;
                    height: 200px;
                    /*top、bottom、left和right 均设置为0*/
                    top: 0;
                    bottom: 0;
                    left: 0;
                    right: 0;
                    /*margin设置为auto*/
                    margin:auto;
                    border: 1px solid green;    
                }
            </style>
        </head>
    
        <body>
            <div class="p">
                <div class="c">
                    子元素
                </div>
            </div>
            
        </body>
    
    </html>

    效果:

    2、table-cell布局

    核心代码实现请看示例代码中的注释:

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>CSS水平垂直居中实现方式--定位实现</title>
            <style type="text/css">
                *{
                    margin: 0;
                    padding: 0;    
                }
                .p{
                    width: 500px;
                    height: 500px;
                    border: 1px solid red;
                    display: table-cell;
                    /*vertical-align: middle; 实现垂直居中*/
                    vertical-align: middle;
                }
                .c{
                    width: 200px;
                    height: 200px;
                    border: 1px solid green;
                    /*margin: 0 auto; 实现水平居中*/
                    margin: 0 auto;    
                }
            </style>
        </head>
    
        <body>
            <div class="p">
                <div class="c">
                    子元素
                </div>
            </div>
            
        </body>
    
    </html>

    效果同上。

    3、flex布局

    核心代码实现请看示例代码中的注释:

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>CSS水平垂直居中实现方式--定位实现</title>
            <style type="text/css">
                * {
                    margin: 0;
                    padding: 0;
                }
                
                .p {
                    width: 500px;
                    height: 500px;
                    border: 1px solid red;
                    /*flex 布局*/
                    display: flex;
                    /*实现垂直居中*/
                    align-items: center;
                    /*实现水平居中*/
                    justify-content: center;
                }
                
                .c {
                    width: 200px;
                    height: 200px;
                    border: 1px solid green;
                }
            </style>
        </head>
    
        <body>
            <div class="p">
                <div class="c">
                    子元素
                </div>
            </div>
    
        </body>
    
    </html>

    效果同上,注意浏览器兼容性问题

    4、translate+relative定位

    核心代码实现请看示例代码中的注释:

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>CSS水平垂直居中实现方式--定位实现</title>
            <style type="text/css">
                * {
                    margin: 0;
                    padding: 0;
                }
                
                .p {
                    width: 500px;
                    height: 500px;
                    border: 1px solid red;
                }
                
                .c {
                    width: 200px;
                    height: 200px;
                    border: 1px solid green;
                    /*relative 定位*/
                    position: relative;
                    /*top和left偏移各为50%*/
                    top: 50%;
                    left: 50%;
                    /*translate(-50%,-50%) 偏移自身的宽和高的-50%*/
                    transform: translate(-50%, -50%);
                }
            </style>
        </head>
    
        <body>
            <div class="p">
                <div class="c">
                    子元素
                </div>
            </div>
    
        </body>
    
    </html>

    效果同上,注意浏览器兼容性问题

  • 相关阅读:
    CF1253F Cheap Robot(神奇思路,图论,最短路,最小生成树/Kruskal 重构树/并查集)
    [算法模版]子序列DP
    [Codeforces1250E] The Coronation
    Comet OJ
    [算法模版]种类并查集
    浅析容斥和DP综合运用
    FWT-快速沃尔什变换
    [算法模版]同余最短路
    卡特兰数
    [算法模版]同余最短路
  • 原文地址:https://www.cnblogs.com/mengfangui/p/7227486.html
Copyright © 2011-2022 走看看