Open Mopecat opened 4 years ago
写了一个小练习做的相关实践,代码 主要可以分成几种情况:
padding
值 (局限性较大)margin
负值calc(50% - child宽高)
来实现。有个需要注意的点就是在calc方法里的操作符(也就是加减乘除符号)的前后必须要有空格,否则不生效。transform:translate(-50%,-50%)
(原理是当translate的参数值为百分比的时候偏移量是根据自身宽高计算的)display: table-cell;vertical-align:middle;
但是这种方式除了本身兼容性不好之外,还附带有表格的样式,需要大量代码清除样式,实用性并不高margin:auto
实现grid
grid
回头我试试,这玩意我还没用过呢
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>TEST</title>
<style>
.wrap {
width: 500px;
height: 500px;
background: green;
/* NO.1 */
/* display: flex;
align-items: center;
justify-content: center; */
/* NO.2 */
/* padding:150px;
box-sizing: border-box; */
/* No.3 */
position: relative;
}
.inner {
width:200px;
height: 200px;
background: red;
/* No.3 */
/* position: absolute;
top: 50%;
left:50%;
margin-top: -100px;
margin-left: -100px; */
/* No.4 */
/* position: absolute;
top: 50%;
left:50%;
transform: translate(-50%, -50%); */
/* NO.5 */
position: absolute;
top:0;
left:0;
right: 0;
bottom:0;
margin: auto;
}
</style>
</head>
<body>
<div class="wrap">
<div class="inner"></div>
</div>
</body>
<script src="./2.index.js"></script>
</html>
来吧 开始吧 我的小伙伴们