元素布局——CSS水平垂直居中

本文总结了五种方法实现元素或文字在页面中水平垂直居中:1. 宽高固定布局;2. 表格布局适用于文字和图片;3. CSS3布局适合移动端百分比布局;4. 占位布局,高度固定;5. 利用margin:auto实现%布局的居中。兼容性覆盖了大部分现代浏览器。
摘要由CSDN通过智能技术生成

总结一下 元素/文字 水平且垂直居中的方法。

1 . 最常用做法

关键词:宽高固定

<!DOCTYPE html>
<html>
<head>
    <style>
    .wrapper {
        position: relative;
        width: 400px;
        height: 400px;
        border: 1px solid #aaa;
    }
    .content {
        position: absolute;
        width: 200px;
        height: 200px;
        left: 50%;
        top: 50%;
        margin-left: -100px;
        margin-top: -100px;
        background-color: #0f0;
    }
    </style>
</head>
<body>
<div class="wrapper">
    <div class="content"></div>
</div>
</body>
</html>

兼容性:所有浏览器

2 . 表格布局

关键词:文字 图片

<!DOCTYPE html>
<html>
<head>
    <style>
    .wrapper {
        display: table;
        height: 400px;
        width: 400px;
        border: 1px solid #aaa;
    }
    .content {
        display: table-cell;
        vertical-align: middle;
        text-align: center;
    }
    </style>
</head>
<body>
    <div class="wrapper">
        <div class="content">content</div>
    </div>
</body>
</html>

兼容性:ie8+/Chrome/Firefox/Opera/Safari

3 . CSS3布局

关键词:移动端 %布局

<!DOCTYPE html>
<html>
<head>
    <style>
    .wrapper {
        position: relative;
        width: 400px;
        height: 400px;
        border: 1px solid #aaa;
    }
    .content {
        position: absolute;
        width: 20%;
        height: 20%;
        top: 50%;
        left: 50%;
        background-color: #0f0;
        transform: translateX(-50%) translateY(-50%);
        -o-transform: translateX(-50%) translateY(-50%);
        -ms-transform: translateX(-50%) translateY(-50%);
        -moz-transform: translateX(-50%) translateY(-50%);
        -webkit-transform: translateX(-50%) translateY(-50%);
    }
    </style>
</head>
<body>
<div class="wrapper">
    <div class="content"></div>
</div>
</body>
</html>

兼容性:ie9+/Chrome/Firefox/Opera/Safari

4 . 占位布局

关键词:高度固定

<!DOCTYPE html>
<html>
<head>
    <style>
    .wrapper {
        width: 400px;
        height: 400px;
        border: 1px solid #aaa;
    }
    .hidden {
        float: left;
        height: 50%;
        margin-bottom: -150px;/*为子元素高度一半*/
    }
    .content {
        clear: both;
        width: 300px;
        height: 300px;
        margin: 0 auto;
        background-color: #0f0;
    }
    </style>
</head>
<body>
    <div class="wrapper">
        <div class="hidden"></div>
        <div class="content"></div>
    </div>
</body>
</html>

兼容性:ie8+/Chrome/Firefox/Opera/Safari
原理:隐藏的div占据了半个父元素位置,并使需要居中的元素上移半个自身高度

5 . margin:auto布局

关键词:%布局

<!DOCTYPE html>
<html>
<head>
    <style>
    .wrapper {
        position: relative;
        width: 400px;
        height: 400px;
        border: 1px solid #aaa;
    }
    .content {
        position:absolute;
        left:0;
        top:0;
        right:0;
        bottom:0;
        margin:auto;
        height:20%;
        width:20%;
        background-color: #0f0;
    }
    </style>
</head>
<body>
    <div class="wrapper">
        <div class="content"></div>
    </div>
</body>
</html>

兼容性:ie7+/Chrome/Firefox/Opera/Safari
原理:.content被设置为距四边均为0,但因为它有高度,其实并不能和四周都间距为 0,因此 margin:auto会使它居中

——前端的坑自己慢慢趟,折过的骨会更强健。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值