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>

     运行结果:

  • 相关阅读:
    【第一周】进度条
    【第二周】Java实现英语文章词频统计(改进1)
    【第二周】关于java.util包下的Random类
    【第二周】结对编程(宫丽君和林莉):四则运算
    【第二周】scrum站立会议
    【第二周】燃尽图
    【第二周】Java实现英语文章词频统计
    【第一周】读《构建之法》有感
    python:带参数的装饰器,函数的有用信息
    python:数据类型dict
  • 原文地址:https://www.cnblogs.com/web-fusheng/p/6724759.html
Copyright © 2011-2022 走看看