深入剖析width與max-width/min-width屬性(百分比)

本博客意在剖析width與max-width/min-width屬性

width和max-width/min-width屬性均屬於CSS中常用屬性,其中

  • width屬性設置元素的寬度。默認情況下,它會設置內容區域的寬度,但是如果box-sizing設置爲border-box,它會設置邊框區域的寬度
  • max-width/min-width屬性設置元素的最大/最小寬度。它可以防止使用的width屬性值變得比max-width指定的值大/小,值得注意的是,min-width屬性會覆蓋max-width屬性,針對這一點,後續會有驗證

在width和max-width/min-width屬性使用過程中,屬性值均可爲100%,在MDN中對這種情況進行了如下闡述

  • <percentage>
    • Defines the max-width as a percentage of the containing block's width.
    • Defines the width as a percentage of the containing block's width.

如上所示,二者相關內容定義類似,但在實際應用中略有不同,例如在如下示例中,

設置img的父盒子即div的width爲瀏覽器寬度的25%,img的width爲100%(此處代表img寬度與父盒子寬度相同,高度等比縮放),在該例中,可以看出隨着瀏覽器界面的放大,img的尺寸等比放大,且爲父盒子寬度的100%,放大過程不受img原尺寸的影響

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            width: 25%;
        }
        div img {   
            width: 100%;
        }
    </style>
</head>
<body>
    <div>
        <img src="IMAGES/images/apple.png" alt="">
    </div>
</body>
</html>

設置img的父盒子即div的width爲瀏覽器寬度的25%,img最大寬度爲100%(此處代表img最大寬度爲原圖的寬度,而不會受到瀏覽器寬度的不斷增加而擴展),在該例中,可以看出,當父盒子div的寬度不足img寬度時,隨着瀏覽器界面的放大,img的寬度爲父盒子div的寬度的100%,但當父盒子div的寬度大於img寬度時,img尺寸不隨瀏覽器界面的放大而放大,即最大爲原圖尺寸。min-width同理

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            width: 50%;
        }
        div img {   
            max-width: 100%;
        }
    </style>
</head>
<body>
    <div>
        <img src="IMAGES/images/apple.png" alt="">
    </div>
</body>
</html>

爲進一步探究max-width與min-width的覆蓋關係,進行如下實驗,通過結果可以看出,img的最大尺寸明顯在img寬度的11%以上,這說明在同時設置min-width和max-width時,min-width屬性會覆蓋max-width屬性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            width: 100%;
        }
        div img {   
            min-width: 10%;
            max-width: 11%;
        }
    </style>
</head>
<body>
    <div>
        <img src="IMAGES/images/apple.png" alt="">
    </div>
</body>
</html>

 本系列博客會陸續更新,主要內容爲所前端學習過程中的心得體會,如感興趣,大家多關注鼓勵

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