CSS margin負外邊距
margin屬性用來設定元素的外邊距。
關於它的基本用法可以參閱CSS margin外邊距一章節。
外邊距應用程式碼片段如下:
[CSS] 純文字檢視 複製程式碼div { width:150px; height:150px; margin:10px 20px 30px 40px; }
上述程式碼演示了給div設定margin外邊距,非常的簡單。
當然我們也可以將margin外邊距值設定為負數,表面上看非常容易理解和直白。
程式碼片段如下:
[CSS] 純文字檢視 複製程式碼margin-left:10px; margin-left:-10px;
margin-left:10px可以將元素從原位置向右移動10px。
那麼margin-left:-10px就是將元素從原位置向右移動-10px,也就是向左移動10px。
看上去非常簡單,很多初學者對於負外邊距的理解僅限於此,無非是外邊距的方位上的不同。
下面看一段程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <title>螞蟻部落</title> <style type="text/css"> #ant{ width:300px; height:100px; background-color:red; margin-bottom:-40px; } </style> </head> <body> <div id="ant"></div> 本站url地址是www.softwhy.com </body> </html>
程式碼執行效果截圖如下:
程式碼的執行表現是不是讓人很奇怪,主要有如下幾點:
(1).設定div元素下外邊距為負數,但是div元素位置沒有發生變化。
(2).文字並非寫在div元素內,但是此時文字的卻位於div元素之內。
上面所有奇怪現象的都是和負外邊距內在原理相關聯,下面進行一下詳細分析。
一.負外邊距對文件流的影響:
文件流規通俗的講是規定內容在文件中的繪製規則,具體可以參閱CSS文件流通俗介紹一章節。
如果上面的程式碼沒有設定負外邊距,那麼div在上,文字內容在div的下方。
負外邊距可以對元素在文件流中佔據空間的邊界產生影響(準確的說不是負外邊距,而是外邊距),正外邊距能夠向外延伸元素佔據空間的邊界,負外邊距能回縮邊界,上面程式碼,div原本佔據文件流空間回縮40px,後面文字填補它回縮的空間。
概念總結:處於文件流中的元素邊界是由外邊距所確定,外邊距為正,那麼邊界向外擴充套件,為負,邊界回縮。
再來看一段程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <title>螞蟻部落</title> <style type="text/css"> #box{ width:200px; background-color:blue; overflow:hidden; } #ant{ width:80px; height:100px; background-color:red; } </style> <script> window.onload=function(){ let obt=document.getElementById("bt"); let odiv=document.getElementById("ant"); obt.onclick=function(){ odiv.style.marginBottom="-40px"; } } </script> </head> <body> <div id="box"> <div id="ant"></div> </div> <input type="button" id="bt" value="檢視效果"/> </body> </html>
在上面程式碼中,父元素高度自適應,它的子元素的高度是100px。
這時候點選按鈕,通過JavaScript設定子元素的下外邊距值為-40px,那麼子元素的在文件流所佔據的邊界會回退40px(邊界回退並不意味著它的高度減少),那麼父元素的高度變為60px。
特別說明:父元素新增overflow:hidden是為了啟用元素BFC,以此適應子元素所佔據的空間。
相關文章
- CSS margin外邊距CSS
- CSS margin 外邊距CSS
- CSS 負外邊距CSS
- css中內邊距是padding,外邊距是marginCSSpadding
- 負外邊距margin對寬度的影響
- CSS 外邊距(margin)重疊及防止方法CSS
- 負外邊距margin對浮動元素的影響
- 深入理解CSS外邊距摺疊(Margin Collapse)CSS
- body 預設具有margin外邊距
- CSS中的負邊距CSS
- 負外邊距margin對於絕對定位元素的影響
- CSS 右外邊距失效CSS
- CSS 外邊距合併CSS
- 絕對定位對margin外邊距的影響
- margin外邊距疊加簡單程式碼例項
- jquery包括margin外邊距的outerWidth或者outerHeightjQuery
- margin系列之外邊距摺疊
- jQuery offset()返回值與外邊距margin的關係jQuery
- float浮動元素不會有margin外邊距合併效果
- body在預設情況下是具有margin外邊距的
- CSS中父物件的內邊距是否對子物件的外邊距造成影響CSS物件
- scss自動生成margin padding邊距CSSpadding
- CSS佈局奇淫巧計之-強大的負邊距CSS
- 負邊距、三欄佈局
- 用padding和margin撐起左右邊距padding
- CSS影象替換:文字縮排,負邊距以及更多方法CSS
- CSS 右內邊距失效CSS
- CSS 盒子的邊距塌陷CSS
- 外邊距與絕對定位
- CSS padding內邊距CSSpadding
- CSS padding 內邊距CSSpadding
- 理解並運用 CSS 的負 margin 值CSS
- 深入理解CSS中的margin負值CSS
- matlab控制影象的邊界(margin),subplot的間距(gap)Matlab
- css邊距重疊的解決方案CSS
- CSS-盒子模型-邊距合併CSS模型
- css相鄰選擇器設定li元素外邊距程式碼例項CSS
- 負margin小記