什麼時候用Margin?什麼時候用Padding?

2021-09-30 19:12:01 字數 2239 閱讀 5771

這裡是修真院web小課堂,每篇分享文從

八個方面深度解web知識/技能,本篇分享的是:

【什麼時候用margin?什麼時候用padding? 】

在html文件中,我們一般把html標籤粗分為塊級元素(block)和內聯元素(inline)。塊級元素是是構成乙個html的主要和關鍵元素, 任意乙個塊級元素均可以用盒子模型(box model)來解釋說明。margin和padding屬性是盒子模型的的組成部分,正確理解這兩個屬性也是學習用css布局的關鍵。

盒子模型

任意乙個塊級元素均由content(內容), padding(內邊距), background(包括背景顏色和), border(邊框), margin(外邊距)五個部分組成。

其中margin屬性定義了元素邊框外部的空白區域,給其賦值可以設定元素與元素之間的距離

padding屬性定義了元素邊框與元素內容之間的空白區域,給其賦值可以設定元素與內容之間距離

margin和padding的屬性及語法:

1. margin: 包括margin-top, margin-right, margin-bottom, margin-left, 控制塊級元素之間的距離, 它們是透明不可見的, 可以分別給其四個方向賦值,也可以對值進行簡寫,其中屬性值可以是具體數子,也可以用百分比表示,當用百分比時,百分比參考父元素的寬度。

根據上, 右, 下, 左的順時針規則, 簡寫為:margin: 40px 40px 40px 40px;

當上下, 左右margin值分別一致, 可簡寫為:margin: 40px 40px;

前乙個40px代表上下margin值, 後乙個40px代表左右margin值。

當上下不同,左右一致時,可簡寫為:margin:20px 40px 30px;

中間的40px代表左右margin值。

當上下左右margin值均一致, 可簡寫為:margin: 40px;

2. padding: 包括padding-top, padding-right, padding-bottom, padding-left, 控制塊級元素內部, content與border之間的距離, 其**, 簡寫請參考margin屬性的寫法.

什麼時候用margin?什麼時候用padding?

使用margin值的情況:

需要在border外側新增空白時。

空白處不需要背景(色)時。

上下相連的兩個盒子之間的空白,需要相互抵消時。如15px + 20px的margin,將得到20px的空白。(margin摺疊)。

需要使用負值對頁面布局時(margin值可以取負,padding不行)。

使用padding時的情況:

需要在border內測新增空白時。

空白處需要背景(色)時。

上下相連的兩個盒子之間的空白,希望等於兩者之和時。如15px + 20px的padding,將得到35px的空白。

margin是用來隔開元素與元素的間距;padding是用來隔開元素與內容的間隔。margin用於布局分開元素使元素與元素互不相干;padding用於元素與內容之間的間隔,讓內容(文字)與(包裹)元素之間有一段「呼吸距離」。

什麼是margin摺疊?

在css中,兩個或以上的塊元素(可能是兄弟,也可能不是)之間的相鄰外邊距可以被合併成乙個單獨的外邊距。通過此方式合併的外邊距被稱為摺疊,且產生的已合併的外邊距被稱為摺疊外邊距。

處於同乙個塊級上下文中的塊元素,沒有行框、沒有間隙、沒有內邊距和邊框隔開它們,這樣的元素垂直邊緣毗鄰,則稱之為相鄰。

margin和padding還有哪些不同?

在怪異盒模型中,乙個塊的總寬度受margin影響但不受padding影響。

參考文獻

css中padding、margin屬性的區別和詳解

margin系列之外邊距摺疊

什麼時候用exists 什麼時候用in

in not in exists not exists 使用exists,oracle會首先檢查主查詢,然後執行子查詢直到它找到第乙個匹配項,這就節省了時間。oracle在執行in子查詢時,首先執行 子查詢,並將獲得的結果列表存放在乙個加了索引的臨時表中。在執行子查詢之前,系統先將主查詢掛起 待子查...

什麼時候用GET?什麼時候用POST?

get和post兩種方法都是將資料送到伺服器,但你該用哪一種呢?http標準包含這兩種方法是為了達到不同的目的。post用於建立資源,資源的內容會被編入http請示的內容中。例如,處理訂貨表單 在資料庫中加入新資料行等。當請求無 時 如進行搜尋 便可使用get方法 當請求有 時 如新增資料行 則用p...

什麼時候用堆,什麼時候用棧?

參考文章 c 面試題之記憶體分配 一 首先,回顧一下c c 的記憶體分配機制。乙個c c 程式編譯時記憶體分為5大儲存區 堆區 棧區 靜態區 全域性區 文字常量區 儲存字串常量 程式 區 存放二進位制程式 下面主要闡述前面三個。1 靜態儲存區域 靜態儲存區域的 內存在程式編譯時就已經分配好,這塊內存...