案例分析:先定位在父盒子的上左50%,然后通过以下代码减去自身宽度transform:translate(-50%,-50%);
position: absolute;
/* 这里都50%是将子盒子定位到包含本身在内的伪居中位置 */
left: 50%;
top: 50%;
/* 盒子往上走自身高度的一般,往左走自身宽度的一般 */
transform: translate(-50%, -50%);
一、运行结果:
二、代码
~~~c
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<style>
* {
padding: 0;
margin: 0;
}
.box {
/* 父相 */
position: relative;
/* 父盒子宽高 */
width: 500px;
height: 500px;
/* 页面居中 */
margin: 0 auto;
/* 父盒子背景颜色 */
background-color: skyblue;
}
.box1 {
/* 1.translate里面的参数可以使用百分比% */
/* 2.如果里面的参数是%移动的距离是盒子自身的宽度和高度作为对比的 */
/* 这里的50%就是盒子宽度的一般50px (下方已注释)*/
/* transform: translate(50%); */
/* 子绝 */
position: absolute;
/* 这里都50%是将子盒子定位到包含本身在内的伪居中位置 */
left: 50%;
top: 50%;
/* 子盒子宽高 */
width: 100px;
height: 100px;
/* 子盒子背景颜色 */
background-color: pink;
/* 盒子往上走自身高度的一般,往左走自身宽度的一般 */
transform: translate(-50%, -50%);
}
</style>
<body>
<div class="box">
<div class="box1"></div>
</div>
</body>
</html>
~~~