代码
<head>
<style>
.center {
width: 520px;
height: 256px;
background-color: aqua;
position: absolute;
left: 50%;
top: 50%;
/* 适应外边距减少的方式 向左平移一半 */
margin-left: -260px;
margin-top: -128px;
/* 或者直接使用以下代码:向左移动50% 就是自己宽高的一半 */
/* transform: translate(-50%, -50%); */
}
</style>
</head>
<body>
<div class="center"></div>
</body>
</html>
原理
绝对定位可以使元素在上级框架内绝对移动,通过设置left
、top
为50%
,使元素向右、向下移动上级框架宽高的一半。
.center {
position: absolute;
left: 50%;
top: 50%;
/* 使元素向右、向下移动上级框架宽高的50% */
可以发现此时并没有居中,因为元素自身也有宽高属性,所有只需要反方向移动元素自身宽高的50%即可,有两种方式
- 通过设置负数外边距实现向上、向左移动
- 通过
tuansform
直接移动-50%
实现
.center {
/*方式1:适应外边距减少的方式 向上、向左移动宽高的一半 */
margin-left: -260px;
margin-top: -128px;
/* 或者直接使用以下代码:向左移动50% 就是自己宽高的一半 */
/* transform: translate(-50%, -50%); */
}