發現問題過程:
<!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>
<style>
body {
margin: 0;
padding: 0;
background: #313131;
}
.center {
top: 50%;
left: 50%;
position: absolute;
transform: translate(-50%, -50%);
}
.cir {
height: 80px;
width: 80px;
margin: auto;
}
.c1,
.c2 {
width: 100%;
height: 100%;
position: absolute;
background: #e74c3c;
border-radius: 50%;
opacity: 0.6;
animation: c 2s infinite ease-in-out;
}
.c2 {
animation-delay: -1s;
}
@keyframes c {
0%,
100% {
transform: scale(0);
}
50% {
transform: scale(1)
}
}
</style>
</head>
<body>
<div class="center">
<div class="cir">
<span class="c1"></span>
<span class="c2"></span>
</div>
</div>
</body>
</html>
就是這段代碼,刪除.c1和.c2屬性 position:absolute。 中間的圓圈不見了,說明width與height不起作用了。
解釋如下:
引用下曹劉陽寫的《編寫高質量代碼-web前端開發修煉之道》一書中看到的一句話:
position:absolute和float會隱式地改變display類型,不論之前什麼類型的元素(display:none除外),
只要設置了position:absolute、 float中任意一個,都會讓元素以display:inline-block的方式顯示:可以設置長寬,默認寬度並不佔滿父元素。