[CSS學習] padding屬性講解


記:本文可以作為張老師在慕課網上講解課程的學習筆記

定義

padding:通過查MDN文檔可知

the padding property sets the padding space on all sides of an element. The padding ares is the space between the content of the element and its border. Negative values are not allowed.

小實驗:

對於block水平元素

1. padding值如果很大,一定會影響元素的尺寸

2. width如果不是auto而是一個固定值,那么padding值一定會影響元素尺寸

3. width如果是auto或者box-sizing=border-box,只要padding值設置的合理,就不會影響元素尺寸

對於Inline水平元素

水平方向的padding值會影響元素尺寸,而垂直方向的padding值不會影響元素尺寸,只會影響內容區域的高度和背景色。

應用場景: 文字之間的短分割線

inline元素如果有垂直方向的padding值,那么會出現“幽靈空白節點”,會影響元素的高度。通過設置font-size=0可以保持高度不變形。

 

取值

padding的取值不支持負數

padding的百分比數字是基於元素的寬度來計算的

 

標簽元素內置padding值

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

2. 所有瀏覽器Button按鈕內置padding

3. 部分瀏覽器select下拉內置padding

4. 所有瀏覽器radio/checkbox無內置padding

5. button按鈕元素的padding最難控制, padding與高度的計算不兼容

Chrome {padding: 0;}

FireFox  button::-moz-focus-inner{ padding:0; }

IE7 button{ overflow: visible;}

小技巧: 通過label標簽模擬button標簽,達到所有瀏覽器下button的高度一致。

<button id='btn'></button>

<label for='btn'>xx</label>

CSS設置 button{ z-index, margin-left, position}來達到移除屏幕之外的隱藏

label{ display: inline-block; line-height; padding;}

 

 

padding與圖形繪制

a. 如何實現三道杠圖形

使用CSS屬性padding, background-clip

background-clip表示指定對象的背景圖像向外裁剪的區域

屬性值: padding-box(從padding區域開始向外剪裁背景,邊框下面沒有背景,延伸至內邊距外沿)  border-box(從border區域開始向外剪裁背景,背景延伸到邊框外沿)  content-box(從content區域開始向外剪裁背景) text(從前景內容的形狀作為剪裁區域向外剪裁,如此可實現使用背景作為填充色之類的遮罩效果)

 1 <div class="line-tri"></div> 

 1 .line-tri{
 3   width: 15px;
 5   height: 30px;
 7   padding: 15px 0;
 9   border-top: 30px solid;
11   border-bottom: 30px solid;
13   background-color: currentColor;
14   background-clip: content-box;
16 }

 


免責聲明!

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



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