• 【css】图片垂直水平居中


    一、已知宽高的图片实现垂直水平居中

    1.借助margin-top负边距实现垂直居中

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>在已知图片高度的情况下借助margin-top负边距实现垂直居中</title>
            <style type="text/css">
                *{
                    margin:0;
                    padding:0;
                }
                html,body{
                    width:100%;
                    height:100%;
                }
                .wrap{
                    position:relative;
                    width:500px;
                    height:500px;
                    text-align:center;
                    border:1px solid #e64c65;
                }
                img{
                    position:absolute;
                    top:50%;
                    height:88px;
                    left:0;
                    right:0;
                    margin:auto;
                    margin-top:-44px;
                    
                }
            </style>
        </head>
        <body>
            <div class="wrap">
                <img src="girl.jpg"  alt=""/>
            </div>
        </body>
    </html>

     2.借助额外的块级元素实现垂直居中

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>在已知图片高度的情况下借助额外的块级元素实现垂直居中</title>
            <style type="text/css">
                *{
                    margin:0;
                    padding:0;
                }
                html,body{
                    width:100%;
                    height:100%;
                }
                .wrap{
                    width:500px;
                    height:500px;
                    text-align:center;
                    border:1px solid #e64c65;
                }
                .temp{
                    height:50%;
                    margin-bottom:-44px;
                }
                img{
                    height:88px;
                }
            </style>
        </head>
        <body>
            <div class="wrap">
                <div class="temp"></div>
                <img src="girl.jpg"  alt=""/>
            </div>
        </body>
    </html>

     二、未知宽高的图片实现垂直水平居中

    1.利用line-height 和 vertical-align:middle实现垂直居中

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>利用line-height 和 vertical-align:middle实现垂直居中</title>
            <style type="text/css">
                *{
                    margin:0;
                    padding:0;
                }
                html,body{
                    width:100%;
                    height:100%;
                }
                .wrap{
                    width:500px;
                    height:500px;
                    text-align: center;
                    line-height:500px;
                    border:1px solid #e64c65;
                    margin:100px auto;
    
                }
                img{
                    vertical-align: middle;
                }
            </style>
        </head>
        <body>
            <div class="wrap">
                <img src="girl.jpg"  alt=""/>
            </div>
        </body>
    </html>

     2.借助高度100%的一个标签,原理vertical-align属性的特性实现垂直居中

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>借助高度100%的一个标签,原理vertical-align属性的特性实现垂直居中</title>
            <style type="text/css">
                *{
                    margin:0;
                    padding:0;
                }
                html,body{
                    width:100%;
                    height:100%;
                }
                .wrap{
                    width:500px;
                    height:500px;
                    text-align: center;
                    border:1px solid #e64c65;
                }
                img{
                    vertical-align: middle;
                }
                span{
                    display: inline-block;
                    height:100%;
                    vertical-align: middle;
                }
            </style>
        </head>
        <body>
            <div class="wrap">
                <img src="girl.jpg"  alt=""/>
                <span></span>
            </div>
        </body>
    </html>

     3.利用after伪类实现垂直居中

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>利用after伪类实现垂直居中</title>
            <style type="text/css">
                *{
                    margin:0;
                    padding:0;
                }
                html,body{
                    width:100%;
                    height:100%;
                }
                .wrap{
                    width:500px;
                    height:500px;
                    text-align:center;
                    border:1px solid #e64c65;
                }
                .wrap::after{
                    display:inline-block;
                    content:'';
                    height:100%;
                    vertical-align: middle;
                }
                img{
                    vertical-align: middle;
                }
            </style>
        </head>
        <body>
            <div class="wrap">
                <img src="girl.jpg"  alt=""/>
            </div>
        </body>
    </html>

    4.利用table-cell实现垂直居中

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>利用table-cell实现垂直居中</title>
            <style type="text/css">
                *{
                    margin:0;
                    padding:0;
                }
                html,body{
                    width:100%;
                    height:100%;
                }
                .wrap{
                    display:table-cell;
                    width:500px;
                    height:500px;
                    font-size:0;
                    vertical-align: middle;
                    text-align: center;
                    border:1px solid #e64c65;
                }
            </style>
        </head>
        <body>
            <div class="wrap">
                <img src="girl.jpg"  alt=""/>
            </div>
        </body>
    </html>

    5.利用flex弹性布局实现垂直居中实现垂直居中

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>利用flex弹性布局实现垂直居中实现垂直居中</title>
            <style type="text/css">
                *{
                    margin:0;
                    padding:0;
                }
                html,body{
                    width:100%;
                    height:100%;
                }
                .wrap{
                    width:500px;
                    height:500px;
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    border:1px solid #e64c65;
                }
            </style>
        </head>
        <body>
            <div class="wrap">
                <img src="girl.jpg"  alt=""/>
            </div>
        </body>
    </html>

    6.利用绝对定位实现垂直居中

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>未知图片高度的情况下借助绝对定位实现垂直居中</title>
            <style type="text/css">
                *{
                    margin:0;
                    padding:0;
                }
                html,body{
                    width:100%;
                    height:100%;
                }
                .wrap{
                    position:relative;
                    width:500px;
                    height:500px;
                    border:1px solid #e64c65;
                }
                img{
                    position:absolute;
                    top:0;
    ;                bottom:0;
                    left:0;
                    right:0;
                    margin:auto;
                }
            </style>
        </head>
        <body>
            <div class="wrap">
                <img src="girl.jpg"  alt=""/>
            </div>
        </body>
    </html>

    7.利用绝对定位+transform实现垂直居中

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>未知图片高度的情况下借助绝对定位+transform实现垂直居中</title>
            <style type="text/css">
                *{
                    margin:0;
                    padding:0;
                }
                html,body{
                    width:100%;
                    height:100%;
                }
                .wrap{
                    position:relative;
                    width:500px;
                    height:500px;
                    border:1px solid #e64c65;
                }
                img{
                    left: 50%;
                    top: 50%;
                    position: absolute;
                    -webkit-transform: translate3D(-50%,-50%,0);
                    -ms-transform: translate3D(-50%,-50%,0);
                    -moz-transform: translate3D(-50%,-50%,0);
                    -o-transform: translate3D(-50%,-50%,0);
                    transform: translate3D(-50%,-50%,0);
                }
            </style>
        </head>
        <body>
            <div class="wrap">
                <img src="girl.jpg"  alt=""/>
            </div>
        </body>
    </html>

     效果:

    作者:smile.轉角

    QQ:493177502

  • 相关阅读:
    JavaEE基础(01):Servlet实现方式,生命周期执行过程
    Spring 框架基础(06):Mvc架构模式简介,执行流程详解
    Spring 框架基础(05):事务管理机制,和实现方式
    多线程搜索与排序
    mybatis的Mapper代理原理
    spring的RestTemplate使用指南
    探索CAS无锁技术
    两年Java的面试经验
    HashMap多线程并发的问题
    解析Mybaits的insert方法返回数字-2147482646的原因
  • 原文地址:https://www.cnblogs.com/websmile/p/10008140.html
Copyright © 2020-2023  润新知