使用CSS实现上下左右居中

1、左右居中

使用纯CSS实现左右居中的经典方法是将被居中元素的margin值左右设置为auto,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>左右居中</title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        .parent{
            width: 80%;
            height: 400px;/*固定高度只为结果直观,高度可自动*/
            margin: 0 auto;/*父元素相对于浏览器窗口左右居中*/
            background: #DEC2C2;
        }
        .child{
            width: 200px;
            height: 400px;
            margin: 0 auto;/*子元素相对于父元素左右居中*/
            background: #65AC6B;
        }
    </style>
</head>
<body>
    <div class="parent">
        <div class="child">
            左右居中
        </div>
    </div>
</body>
</html>

结果如图:

这里写图片描述

2、上下左右居中

(1)被居中元素宽高已知

只要使得父元素相对定位,子元素绝对定位,子元素的top和left都为50%,margin-top和margin-left分别为宽高的负一半即可。

<!--上下左右居中-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>DIV上下左右居中</title>
    <style type="text/css">
            *{/*实现div的上下左右居中*/
                margin: 0;
                padding: 0;
            }/*清除格式*/
            .div0{
                height: 1000px;
                width: 800px;
                position: relative;/*父元素相对定位*/
                background: #678680;
            }
            .div1{
                position: absolute;/*子元素绝对定位*/
                height: 240px;
                width: 300px;
                /*overflow: hidden;*//*可使得多出块元素的文本隐藏*/
                top: 50%;
                left: 50%;
                margin-top: -120px;/*高的一半*/
                margin-left: -150px;/*宽的一半*/
                border: 5px solid #E58B8B;
                text-align: center;
            }
            .div1 p{
                font-size: 36px;
            }
    </style>
</head>
<body>
    <div class="div0">
        <div class="div1">
            <p>hello world!</p>
            <p>hello world!</p>
        </div>
    </div>
</body>
</html>
(2)被居中元素宽高未知
<!--上下左右居中-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上下左右居中</title>
    <style type="text/css">
            *{/*实现div的上下左右居中*/
                margin: 0;
                padding: 0;
            }/*清除格式*/
            .div0{
                height: 500px;
                width: 500px;
                position: relative;/*父元素相对定位*/
                background: #678680;
            }
            .div1{/*被居中元素宽高未知*/
                position: absolute;/*子元素绝对定位*/
                top: 100px;
                bottom: 100px;
                left: 200px;
                right: 200px;/*设置上下左右撑开以居中*/
                background: #E3A5A5;
                text-align: center;
            }
    </style>
</head>
<body>
    <div class="div0">
        <div class="div1">
        </div>
    </div>
</body>
</html>

结果如下:

这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值