继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

四种方法让块元素在网页中绝对居中

KevenHuang
关注TA
已关注
手记 2
粉丝 29
获赞 33

在一些页面中需要让一个块元素绝对居中,例如,一个跳转页中的提示信息框就需要让其中页面的正中位置显示提示信息,那么如何让一个块元素在页面中绝对居中呢?下面我列出4种解决方法:
1.利用table中内容在单元格中默认垂直居中的特性。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>块元素绝对居中</title>
    <style>
        html,body,table{
            margin:0;
            height:100%;
        }
        table{
            width:100%;
        }
        #box{
            width:300px;
            height:300px;
            background:teal;
            margin:auto;
        }
    </style>
</head>
<body>
    <table>
        <tr>
            <td>
                <div id="box"></div>
            </td>
        </tr>
    </table>
</body>
</html>

2.利用css3中的transform属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>块元素绝对居中</title>
    <style>
        *{
            margin:0;
        }
        #box{
            width:300px;
            height:300px;
            background:maroon;
            position:absolute;
            left:50%;
            top:50%;
            transform:translate(-50%,-50%);
        }
    </style>
</head>
<body>
    <div id="box"></div>
</body>
</html>

3.利用margin属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>块元素绝对居中</title>
    <style>
        *{
            margin:0;
        }
        #box{
            width:300px;
            height:300px;
            background:silver;
            position:absolute;
            left:50%;
            top:50%;
            margin-left:-150px;
            margin-top:-150px;
        }
    </style>
</head>
<body>
    <div id="box"></div>
</body>
</html>

4.利用利用position属性把left,top,right,bottom四个的值设为0,再用margin:auto;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>块元素绝对居中</title>
    <style>
        *{
            margin:0;
        }
        #box{
            width:300px;
            height:300px;
            background:pink;
            position:absolute;
            left:0;
            right:0;
            top:0;
            bottom:0;
            margin:auto;
        }
    </style>
</head>
<body>
    <div id="box"></div>
</body>
</html>
打开App,阅读手记
8人推荐
发表评论
随时随地看视频慕课网APP

热门评论

第二种方法:

position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
作者:KevenHuang
链接:https://www.imooc.com/article/16397
来源:慕课网

才是真正兼容手机端居中的正确操作,感谢~~~学习了~~~

查看全部评论