不定宽高的水平垂直居中

经常遇到不定宽高水平垂直居中的问题,下面来说一下主要的两种方法

一、使用CSS3 transform
直接上代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>不定宽高水平垂直居中</title>
    <style type="text/css">
        .wrap{
            width: 300px;
            height: 300px;
            border: 1px solid red;
            position: relative;
        }
        .center{
            width: 100px;
            height: 100px;
            background: green;
            position: absolute;
            top:50%;
            left: 50%;
            -webkit-transform: translate(-50%,-50%);
        }
    </style>
</head>
<body>
    <div class = "wrap">
        <div class = "center">

        </div>
    </div>
</body>
</html>

效果:
这里写图片描述

主要步骤:
1、让居中块绝对定位(父块必须声明一下relative)
2、top:50%;left:50%会让居中块的左上角处于负块的中心位置,那么接下来让居中块的中心位置移到左上角的位置就好了
3、使用transform的2D转化就可以了,具体是-webkit-transform: translate(-50%,-50%);两个为负值所以往左上角移动,移动多少?那就是居中块本身长度和高度的一半;

二、flex布局

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>不定宽高水平垂直居中</title>
    <style type="text/css">
        .wrap{
            width: 300px;
            height: 300px;
            border: 1px solid red;
            display: flex;
            justify-content:center;
            align-items:center;
        }
        .center{
            width: 100px;
            height: 100px;
            background: green;
        }
    </style>
</head>
<body>
    <div class = "wrap">
        <div class = "center">

        </div>
    </div>
</body>
</html>

效果:
这里写图片描述

步骤:
这个最简单的方式,使用的是flex布局中的justify-content(主轴方向)、align-items(垂直主轴方向)均居中即可

具体flex布局在这里有详细资料:
http://www.runoob.com/w3cnote/flex-grammar.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值