一、CSS外邊距屬性(margin)
屬性 | 描述 |
margin | 簡寫屬性。在一個聲明中設置所有邊距屬性 |
margin-bottom | 設置元素的下外邊距屬性 |
margin-left | 設置元素的左外邊距屬性 |
margin-right | 設置元素的右外邊距屬性 |
margin-top | 設置元素的上外邊距屬性 |
CSS margin(外邊距)屬性定義元素周圍的空間。
margin 清除周圍的(外邊框)元素區(qū)域。margin 沒有背景顏色,是完全透明的。
margin 可以單獨改變元素的上,下,左,右邊距,也可以一次改變所有的屬性。
值 | 描述 |
auto | 瀏覽器計算外邊距。 |
length | 規(guī)定以具體單位計的外邊距值,比如像素、厘米等。默認值是 0px。 |
% | 規(guī)定基于父元素的寬度的百分比的外邊距。 |
inherit | 規(guī)定應該從父元素繼承外邊距。 |
1. 使用像素值(px)設置外邊距
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>CSS簡單學習</title> <style type="text/css"> p.nomargin { background-color: #FF0000 } p.margin { background-color: #FF0000; margin-top: 100px; margin-bottom: 100px; margin-left: 80px; margin-right: 80px; } </style> </head> <body> <p>這是一個沒有指定邊距大小的段落</p> <p>這是一個指定過邊距大小的段落</p> </body> </html>
運行結果:
2. 使用margin簡寫屬性設置外邊距(厘米值cm、百分比值%)
margin簡寫屬性在一個聲明中設置所有外邊距屬性。該屬性可以有1到4個值。
實例:
(1)margin:10px 5px 15px 20px;
a.上邊距是 10px
b.右邊距是 5px
c.下邊距是 15px
d.左邊距是 20px
(2)margin:10px 5px 15px;
a.上邊距是 10px
b.右邊距和左邊距是 5px
c.下邊距是 15px
(3)margin:10px 5px;
a.上邊距和下邊距是 10px
b.右邊距和左邊距是 5px
(4)margin:10px;
a.所有四個邊距都是 10px
注意: 負值是允許的。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>CSS簡單學習</title> <style type="text/css"> p { background-color: aqua; } p.ex1 { margin: 2cm 5cm 3cm 5cm; } p.ex2 { margin: 20% 25% 30% 35%; } </style> </head> <body> <p>這是一個沒有指定邊距大小的段落</p> <p>這是一個使用"厘米cm"指定邊距大小的段落</p> <p>這是一個使用"百分比值%"指定邊距大小的段落</p> </body> </html>
運行結果:
二、margin 外邊距重疊或者疊加問題
1. 外邊距折疊指的是相鄰的兩個或多個外邊距會在垂直方向上發(fā)生合并,合并為一個外邊距。關于外邊距折疊有以下幾點需要注意:
(1)margin 折疊只發(fā)生在塊級元素上;
(2)浮動元素的外邊距不會與任何外邊距發(fā)生折疊;
(3)設置了 overflow 屬性且值不為 visible 的塊級元素,將不會與它的子元素發(fā)生外邊距折疊;
(4)絕對定位元素的外邊距不與任何外邊距發(fā)生折疊;
(5)根元素(例如<body>)的外邊距不與其它任何外邊距發(fā)生折疊。
2. CSS外邊距(margin)重疊及防止方法
邊界重疊是指兩個或多個盒子(可能相鄰也可能嵌套)的相鄰邊界(其間沒有任何非空內(nèi)容、補白、邊框)重合在一起而形成一個單一邊界。
兩個或多個塊級盒子的垂直相鄰邊界會重合。結果的邊界寬度是相鄰邊界寬度中最大的值。如果出現(xiàn)負邊界,則在最大的正邊界中減去絕對值最大的負邊界。如果沒有正邊界,則從零中減去絕對值最大的負邊界。注意:相鄰的盒子可能并非是由父子關系或同胞關系的元素生成。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:
一點編程也不會寫的:零基礎C語言學練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學奧賽或C++選手的 必學C++課程
藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導課程