首页 前端知识 【CSS】实现div块上下左右居中对齐的5种方式

【CSS】实现div块上下左右居中对齐的5种方式

2024-05-10 22:05:39 前端知识 前端哥 117 175 我要收藏

1. 绝对定位+margin:auto的方式

<!DOCTYPE html>
<html>
    <head>
        <style>
            .parent {
                width: 200px;
                height: 200px;
                background-color: rgba(255,0,0,1);
                position: relative;
            }
            .child {
                width: 50%;
                height: 50%;
                background-color: rgba(0,255,0,1);
                position: absolute;
                top: 0;
                right: 0;
                bottom: 0;
                left: 0;
                margin: auto;
            }
        </style>
    </head>
    <body>
        <div class="parent">
            <div class="child"></div>
        </div>
    </body>
</html>

2. 绝对定位+transform:translate(-50%, -50%)的方式

<!DOCTYPE html>
<html>
    <head>
        <style>
            .parent {
                width: 200px;
                height: 200px;
                background-color: rgba(255,0,0,1);
                position: relative;
            }
            .child {
                width: 50%;
                height: 50%;
                background-color: rgba(0,255,0,1);
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
            }
        </style>
    </head>
    <body>
        <div class="parent">
            <div class="child"></div>
        </div>
    </body>
</html>

3. 绝对定位+设置左和上的外边距(需要知道子块宽高具体值)的方式

<!DOCTYPE html>
<html>
    <head>
        <style>
            .parent {
                width: 200px;
                height: 200px;
                background-color: rgba(255,0,0,1);
                position: relative;
            }
            .child {
                width: 100px;
                height: 100px;
                background-color: rgba(0,255,0,1);
                position: absolute;
                top: 50%;
                left: 50%;
                margin-top: -50px;
                margin-left: -50px;
            }
        </style>
    </head>
    <body>
        <div class="parent">
            <div class="child"></div>
        </div>
    </body>
</html>

4. 父块display: table-cell + vertical-align + 子块margin的方式

<!DOCTYPE html>
<html>
    <head>
        <style>
            .parent {
                width: 200px;
                height: 200px;
                background-color: rgba(255,0,0,1);
                display: table-cell;
                vertical-align: middle;
            }
            .child {
                width: 50%;
                height: 50%;
                background-color: rgba(0,255,0,1);
                margin: 0 auto;
            }
        </style>
    </head>
    <body>
        <div class="parent">
            <div class="child"></div>
        </div>
    </body>
</html>

5. flex布局方式

<!DOCTYPE html>
<html>
    <head>
        <style>
            .parent {
                width: 200px;
                height: 200px;
                background-color: rgba(255,0,0,1);
                display: flex;
                justify-content: center;
                align-items: center;
            }
            .child {
                width: 50%;
                height: 50%;
                background-color: rgba(0,255,0,1);
            }
        </style>
    </head>
    <body>
        <div class="parent">
            <div class="child"></div>
        </div>
    </body>
</html>

以上2,4,5方式,注意浏览器版本,较老版本浏览器可能不兼容。

注:以上,如有不合理之处,还请帮忙指出,大家一起交流学习~

转载请注明出处或者链接地址:https://www.qianduange.cn//article/7996.html
标签
评论
发布的文章

HTML5(H5)中的Web Workers

2024-05-19 09:05:52

HTML5

2024-02-27 11:02:15

HTML5 <option> 标签

2024-05-19 09:05:51

@JsonProperty 注解详解

2024-05-19 09:05:27

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!