css之深入理解padding


一,對於block元素

padding是會影響元素的尺寸的。

DOM文檔:

<div class="box"></div>

css清單:

 .box{
            width:200px;
            height:200px;
            background-color: #ffed53;
            padding:20px;
        }

實際效果: 元素大小240*240  ,因為有padding:20px.

結論:padding會對block元素的尺寸產生影響。

二,對於block水平元素,但是width:auto或box-sizing為border-box的時候

DOM文檔:

<div class="box">文字的位置在哪里呢?</div>

css清單:

 .box{
            width:200px;
            height:200px;
            background-color: #ffed53;
            box-sizing:border-box;
            padding:0 10px;
        }

實際效果:box大小還是200*200,但是文字內容還是有了左padding----10px

當padding大小超過寬高時,

css樣式:

  .box{
            width:200px;
            height:200px;
            background-color: #ffed53;
            box-sizing:border-box;
            padding:0 200px;
        }

實際效果:400px*200px   ----寬度為padding的寬度

 

結論:對於block水平元素,但是width:auto或box-sizing為border-box的時候,padding不會影響元素的尺寸....但是當padding

大小超過寬高時,寬高按padding的寬高顯示,里面的文字按最小寬度顯示。

最終結論:

對於block元素:

1,padding值暴走,一定會影響尺寸。

2,width非auto,padding影響尺寸。

3,width為auto或box-sizing為border-box,同時padding值沒有暴走,不影響尺寸。

 

三,對於inline水平元素

水平padding影響尺寸,垂直padding不影響尺寸,但會影響背景色(占據空間)

DOM文檔:

 

<span class="box">文字的位置在哪里呢?</span>

 

css樣式:

 .box{
            background-color: #ffed53;
            padding:40px;
        }

垂直padding影響了背景色。

如何利用這一特性:

 實現高度可控的分隔線

1,直接使用字符:注冊 | 登錄

2,inline-block控制: 注冊 退出登錄

3,使用inline padding: 注冊 | 退出登錄

DOM文檔:

注冊<span></span>退出登錄

css清單:

 span{
            padding:16px 6px 1px;
            margin-left:12px;
            border-left:2px solid;
            font-size:0;
        }

 

 3關於padding負值

padding不支持任何形式的負值

 

4,關於padding的百分比值

padding百分比均是相對於父元素的寬度計算的

運用,輕松實現一個正方形:

DOM文檔:

<div class="container">
    <div class="box"></div>
</div>

css清單:

 .container{
           width:100px;
           height:200px;
       }
        .box{
            background-color: #8ec63f;
            padding:50%;
        }

50*50px的正方形:

不同手機分辨率正方形布局:

 

 3,inline水平元素的padding百分比值

1,同樣相對於寬度計算

2,默認的高度寬度細節有差異

3,padding會斷行

 

 <style>
       .container{
           width:100px;
           height:200px;
       }
        .box{
            background-color: #8ec63f;
            padding:50%;
        }
    </style>
</head>
<body>
<div class="container">
    <span class="box">若干文字</span>
</div>

 

 

 

 

 

 

 

 

 第三節 標簽元素的內置padding

 1,ol/ul列表

1,ol/li元素內置padding-left,但是單位是px,不是em

 

2. 例如Chrome瀏覽器下是40px ;

 

3. 所以如果字號很小,間距就會很開;

 

4. 所以如果字號很大,序號會爬到容器外面;

 

備注:文字大小一般為12px~14px ,padding-left 為22px~25px,基本可以實號與下面的內容對齊。

 

二.  表單元素的內置padding

1. 所有瀏覽器input/textarea輸入框內置padding;

2. 所有button按鈕內置padding;

3. 部分瀏覽器select下拉內置padding,如FireFox、IE8+可以設置padding;

4. 所有瀏覽器radio/checkbox單復選框內無內置padding;就算設置也沒用。

5. button 按鈕元素的padding最難控制;

1). Chrome瀏覽器 padding設為0有效;

2). FireFox瀏覽器設置padding:0左右依舊有padding;可以用button::-moz-focus-inner { padding:0 }設置padding為0。

3). IE瀏覽器:IE7文字越多,左右padding逐漸變大!可以設置button { overflow: visible; }使左右padding為0;

4). padding與高度計算的不兼容。

button{

  line-height: 20px;

  padding: 10px;

  border :  none;

}

高度:

  • IE7:          45px;   ?
  • IE8+:        40px;
  • FireFox:    42px;  ?
  • Chrome:   40px; 

建議:<button id="btn"></button> <label for="btn">按鈕</label>

           label{

              display: inline-block;

               line-height: 20px;

               padding:  10px;    

            }

高度:

  • IE7:           40px;   
  • IE8+:         40px;
  • FireFox:    40px;
  • Chrome:   40px;

 

 第四節,圖形繪制

1,實現3道杠效果

備注:background-clip:content-box ; /**背景色不在padding區域顯示**/

 

2,實現白眼效果

 

 第五節--css  padding與布局

 

2,實現等高布局

 

3 ,兩欄自適應布局

 

 


免責聲明!

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



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