106. 行內標籤span 設置position:absolute 變爲inline-block 可設置寬高

發現問題過程:

<!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的方式顯示:可以設置長寬,默認寬度並不佔滿父元素。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章