方法一:div绝对定位水平垂直居中【margin 负间距】,这种目前使用的比较多,限制是需要定义div的宽度和高度,并且内容可能会超出容器,代码如下:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>水平垂直居中方法</title>
<style type="text/css">
.sys-no1{
width:200px;
height:200px;
left:50%;
top:50%;
position: absolute;
margin-left:-100px;
margin-top:-100px;
background:blue;
}
</style>
</head>
<body>
<div class="sys-no1"></div>
</body>
</html>方法二:div绝对定位水平垂直居中【margin:auto实现绝对定位元素的居中】,这种方法限制是IE7及以前版本不支持,代码如下:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>水平垂直居中方法</title>
<style type="text/css">
.sys-no2{
width: 200px;
height: 200px;
position:absolute;
left:0;
top: 0;
bottom: 0;
right: 0;
margin: auto;
background: blue;
}
</style>
</head>
<body>
<div class="sys-no2"></div>
</body>
</html>方法三:transform法,这种方法IE8及以前版本不支持,代码如下:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>水平垂直居中方法</title>
<style type="text/css">
.sys-no3{
width: 50%;
height: 20%;
position: absolute;
top:50%;/* 定位父级的50% */
left: 50%;
transform:translate(-50%, -50%);/*自己的50% */
-webkit-transform:translate(-50%, -50%);
-ms-transform:translate(-50%, -50%);
background: blue;
}
</style>
</head>
<body>
<div class="sys-no3"></div>
</body>
</html>方法四:flex布局法
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>水平垂直居中方法</title>
<style type="text/css">
.box{
width: 100%;
height: 100%;
margin: auto;
display: flex;
align-items: center; // 垂直居中
justify-content: center;// 水平居中
}
.innerbox{
width:200px;//可以省略
background:blue;
}
</style>
</head>
<body>
<div class="box">
<div class="innerbox">垂直水平居中</div>
</div>
</body>
</html>
微信扫码查看本文
发表评论