垂直居中设置要点:
1、设置元素为相对定位
2、通过top设置其位置为父元素的50%
3、通过margin-top向上偏移元素高度的一半
.search input {
height: 40px;
position: relative;
top: 50%;
margin-top: -20px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
<style>
html,body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
.content {
width: 300px;
height: 300px;
background: orange;
margin: 0 auto; /*水平居中*/
position: relative;
top: 50%; /*偏移,如果top属性不起作用,也可以用margin-top*/
transform: translateY(-50%);
}
</style>
</head>
<body>
<div class="content"></div>
</body>
</html>
除了可以使用margin-top把div往上偏移之外,CSS3的transform属性也可以实现这个功能,通过设置div的transform: translateY(-50%),意思是使得div向上平移(translate)自身高度的一半(50%)。
上面的两种方法,我们都是基于设置div的top值为50%之后,再进行调整垂偏移量来实现居中的。如果使用CSS3的弹性布局(flex)的话,问题就会变得容易多了。使用CSS3的弹性布局很简单,只要设置父元素(这里是指body)的display的值为flex即可。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>写作</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="./layui/css/layui.css" media="all">
<link rel="stylesheet" href="./css/reset.css" media="all">
<style>
.pdiv {
width: 500px;
height: 200px;
background-color: #1E9FFF;
display: flex;
align-items: center;
}
.cdiv-1 {
width: 100px;
height: 100px;
background-color: #ee2222;
}
.cdiv-2 {
width: 100px;
height: 80px;
background-color: #2aa198;
}
.cdiv-3 {
width: 100px;
height: 60px;
background-color: #00F7DE;
}
</style>
</head>
<body>
<script src="./layui/layui.js" charset="utf-8"></script>
<script src="./js/jquery.3.2.1.min.js"></script>
<script src="./js/iconfont.js"></script>
<div class="main">
<div class="pdiv">
<div class="cdiv-1">
</div>
<div class="cdiv-2">
</div>
<div class="cdiv-3">
</div>
</div>
</div>
<script>
</script>
</body>
</html>
网友评论