zoukankan      html  css  js  c++  java
  • div垂直水平居中的四种方法总结

    5、利用弹性布局 与 margin:

    <style>
        .container{
            height: 600px;
            width: 600px;
            border:1px solid black;
            display: flex;
        }
        .box{
            width: 200px;
            height: 100px;
            background-color: blue;
            margin: auto;
        }
    </style>
    <div class="container">
        <div class="box"></div>
    </div>

    1,子div先充满父元素,在margin:auto,

    2,先相对于父元素margin平移,再回拉法,

    3,利用表单单元格td特有属性,vertical-align,使子div垂直居中,

      再对子div设置水平居中.

    4、弹性布局,通过定义伸缩容器的两个属性,justify-content主轴方向,align-items纵轴方向均为center

     ——————(补充)

    个人比较喜欢第一种和第四种方法,既简单,又不用计算

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <style>
            .d-1{
                width: 300px;
                height: 300px;
                position: relative;
                margin: 0 auto;
                border: 1px solid black;
            }
            .d-2{
                width: 200px;
                height: 200px;
                border: 1px solid red;
                position: absolute;
                left:0;top: 0;right: 0;bottom: 0;
                margin: auto;
    
            }
            .d-3{
                width: 100px;
                height: 100px;
                border: 1px solid blue;
                position: absolute;
                left:50%;top: 50%;
                margin-top: -50px;
                margin-left: -50px;
            }
            .d-4{
                width: 100px;
                height: 100px;
                border: 1px solid blue;
    
                /*让标签元素以表格单元格形式呈现,类似于td标签,主要是利用它的特殊属性:
                元素垂直居中对齐,但其会被float、position:absolute、
                所以尽量不要与其同用,设置了display:table-cell的元素对宽度高度敏感,
                对margin值无反应,所以页面上出现在了左边,我就不想再在外面加调了哈,
                但会响应padding属性,基本和td标签无异*/
                display: table-cell;
                vertical-align:middle;
            }
            .d-5{
                width: 50px;
                height: 50px;
                background: blue;
                margin:0 auto;
            }
    
        </style>
    </head>
    <body>
        <div class="d-1">
            <div class="d-2">
                <div class="d-3">
    
                </div>
            </div>
        </div>
    
        <div class="d-4">
            <div class="d-5"></div>
        </div>
    </body>
    
    </html>

    运行结果:

    4、弹性布局,通过定义伸缩容器的两个属性,justify-content主轴方向,align-items纵轴方向均为center

    <style>
        .container{
            height: 600px;
            width: 600px;
            border:1px solid black;
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .box{
            width: 200px;
            height: 100px;
            background-color: blue;
        }
    
    </style>
    
    <div class="container">
        <div class="box"></div>
    </div>

     运行结果:

  • 相关阅读:
    valueof这个万能方法,将string转换为int或者int转换为string都可以
    java的数组index[]方括号内是可以进行算数运算的
    项目工程的包package与文件夹的关系
    导入项目后下载jar包问题理解
    MySQL 5.6.19 二进制安装
    左右 android AES 所述机器的一部分 javax.crypto.BadPaddingException: pad block corrupted
    iOS_词典阵列 按key分组和排序
    Maven真——聚合和继承(于)
    机器学习Matlab打击垃圾邮件的分类————朴素贝叶斯模型
    切点算法模板(Cut-vertex)
  • 原文地址:https://www.cnblogs.com/web-fusheng/p/6724759.html
Copyright © 2011-2022 走看看