【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

posted on   smile轉角  阅读(426)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通

导航

统计

点击右上角即可分享
微信分享提示