當margin與padding的值設置為百分比時?


一、當margin和padding的值設置為百分比時,是指相對於最近的塊級父元素width(非總寬度)的相應百分比的值,即使是margin-top、margin-bottom、padding-top、padding-bottom,設置為百分比時也是以最近塊級父元素的width(非總寬度)為基准,而非height。

CSS權威指南中的解釋:

我們認為,正常流中的大多數元素都會足夠高以包含其后代元素(包括外邊距),如果一個元素的上下外邊距時父元素的height的百分數,就可能導致一個無限循環,父元素的height會增加,以適應后代元素上下外邊距的增加,而相應的,上下外邊距因為父元素height的增加也會增加,如果循環。(摘自https://blog.csdn.net/qq_27437967/article/details/72625900)

1.最近塊級父元素為body時

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        body,div{
            margin: 0;
            padding: 0;
        }
        .content{
            height: 600px;
            width: 800px;
            border: 1px solid #0088bb;
        }
        .div{
            height: 200px;
            width: 400px;
            border: 1px solid #0088bb;
        }
        .div1{
            margin-left: 10%;
            margin-top:20%;
            padding-top: 20%;
            padding-left: 10%;
        }
    </style>
</head>
<body>
<div class="div div1">
</div>
<div class="div div3"></div>
</body>
</html>

 

 

 

2.最近父元素不為body元素時

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        body,div{
            margin: 0;
            padding: 0;
        }
        .content{
            height: 600px;
            width: 800px;
            border: 1px solid #0088bb;
padding:20px;
} .div{ height: 200px; width: 400px; border: 1px solid #0088bb; } .div1{ margin-left: 10%; margin-top:20%; padding-top: 20%; padding-left: 10%; } </style> </head> <body> <div class="content"> <div class="div div1"> </div> <div class="div div3"></div> </div> </body> </html>

 

 

 二、當元素的height、width設置為百分比時,分別基於包含它的塊級對象的高度、寬度。這個是常規百分比的含義。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        body,div{
            margin: 0;
            padding: 0;
        }
        .content{
            height: 600px;
            width: 800px;
            border: 1px solid #0088bb;
            padding: 20px;
        }
        .div1{
            height: 50%;
            width: 50%;
            border: 1px solid #0088bb;
        }

    </style>
</head>
<body>
<div class="content">
<div class="div div1">
</div>
</div>
</body>
</html>

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM