首頁 web前端 css教學 firefox margin-top失效的原因與解決方法_經驗交流

firefox margin-top失效的原因與解決方法_經驗交流

May 16, 2016 pm 12:04 PM
firefox 失效

為什麼要翻譯這篇說明? css2本有人已翻譯過,但看一下,很粗糙(不是說自己就怎麼樣啊,翻譯者真的是很值得敬佩的!),近來跟css與xhtml接觸得越來越多,但接觸得越多,迷惑卻總不見少。
現在我覺得很多問題根本不能稱之為問題,原因就在於我們的草率理解,比如殺雞用牛刀,不是不可以,是不合理、不恰當,根源錯了,表像也就會錯了,如果解決問題從表象入手,難免總會摸不著頭腦,還是那句話,要腳踏實地,切莫浮躁。
在這個說明中,「collapsing margins」(折疊margin)的意思是:2個或以上盒子模型之間(關係可以是相鄰或嵌套)相鄰的margin屬性(這之間不能有非空內容、 padding區域、border邊框或使用清除分離方法)結合表示為一個單獨的margin。
在css2.1中,水平的margin不會被折疊。
垂直margin可能在一些盒子模型中被折疊:
1、在常規文檔流中,2個或以上的塊級盒模型相鄰的垂直margin會被折疊。
最終的margin值計算方法如下:
a、全部都為正值,取最大者;
b、不全是正值,則都取絕對值,然後用正值減去最大值;
c、沒有正值,則都取絕對值,然後用0減去最大值。
注意:相鄰的盒子模型可能由DOM元素動態產生並沒有相鄰或繼承關係。
2、相鄰的和模型中,如果其中的一個是浮動的(floated),垂直margin不會被折疊,甚至一個浮動的盒子模型和它的子元素之間也是這樣。
3.設定了overflow屬性的元素和它的子元素之間的margin不會被折疊(overflow取值為visible除外)。
4.設定了絕對定位(position:absolute)的盒子模型,垂直margin不會被折疊,甚至和他們的子元素之間也是一樣。
5.設定了display:inline-block的元素,垂直margin不會被折疊,甚至和他們的子元素之間也是一樣。
6、如果一個盒子模型的上下margin相鄰,這時它的margin可能折疊覆蓋(collapse through)它。在這種情況下,元素的位置(position)取決於它的相鄰元素的margin是否被折疊。
a、如果元素的margin和它的父元素的margin-top折疊在一起,盒子模型border-top的邊界定義和它的父元素相同。
b、另外,任意元素的父元素不參與margin的折疊,或只有父元素的margin-bottom是參與計算的。如果元素的border-top非零,那麼元素的border-top邊界位置和原來一樣。
一個應用了清除操作的元素的margin-top絕對不會和它的塊級父元素的margin-bottom折疊。
注意,那些已經被折疊覆蓋的元素的位置對其他已經被折疊的元素的位置沒有任何影響;只有在對這些元素的子元素佈局時,border-top邊界位置才是必需的。
7、根元素的垂直margin不會被折疊。
浮動的區塊級元素的margin-bottom總是與它後面的浮動區塊級兄弟元素(floated next in-flow block-level sibling)的margin-top相鄰,除非那個同級元素使用了清除操作。
浮動的區塊級元素的margin-top和它的第一個浮動區塊級子元素(floated first in-flow block-level child)的margin-top相鄰(如果該元素沒有border-top,沒有padding-top,且子元素沒有使用清除操作)。
浮動的區塊級元素的margin-bottom如果符合下列條件,那麼它和它的最後一個浮動區塊級子元素的margin-bottom相鄰(如果該元素沒有指定padding-bottom或border):
a、指定了height:auto
b、min-height小於元素的實際使用高度(height)
c、max-height大於元素的實際使用高度(height)
如果一個元素的min -height屬性設定為0,那麼它所擁有的margin是相鄰的,而且它既沒有border-top和border- bottom,也沒有padding-top和padding-bottom,它的height屬性可以是0或auto,它不能包含一個內聯的盒子模型(line box),它所有的浮動子元素(如果有的話)的margin也都是相鄰的。
當一個元素擁有的margin折疊了,並且它使用了清除操作,那麼它的margin-top會和緊隨其後的兄弟元素的相鄰margin折疊,但結果是它的margin將無法和其區塊級父元素的margin-bottom折疊。
折疊操作是以padding、margin、border的值為基礎的(即在瀏覽器解析所有這些值之後),折疊後的margin計算將覆蓋已使用的不同margin的值。

複製程式碼 程式碼如下:




//不加入br這一行,在FIREFOX中id1的margin-top:20px會在d0上作用,使d0上方與body間有20px的間距,d1與d0的上方沒有間距,而IE內正常顯示



本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Ubuntu Linux如何移除Firefox Snap? Ubuntu Linux如何移除Firefox Snap? Feb 21, 2024 pm 07:00 PM

要在UbuntuLinux中刪除FirefoxSnap,可以按照以下步驟進行操作:打開終端機並以管理員身份登入Ubuntu系統。執行以下命令以卸載FirefoxSnap:sudosnapremovefirefox系統將提示你輸入管理員密碼。輸入密碼並按下Enter鍵以確認。等待指令執行完成。一旦完成,FirefoxSnap將被完全刪除。請注意,這將刪除透過Snap套件管理器安裝的Firefox版本。如果你透過其他方式(如APT套件管理器)安裝了另一個版本的Firefox,則不會受到影響。透過上述步驟

如何解決Laravel登入時間失效的常見問題 如何解決Laravel登入時間失效的常見問題 Mar 06, 2024 pm 09:24 PM

如何解決Laravel登入時間失效的常見問題在使用Laravel開發Web應用程式時,登入認證是一個非常重要的功能。然而,有時候使用者登入後長時間不操作,頁面可能會自動登出或認證失效。這個問題較為常見,以下將介紹如何透過設定session的時間來解決這個問題,並提供具體的程式碼範例。 1.設定session的過期時間在Laravel中,預設為sessi

PHP與REDIS:如何實現分散式快取失效與更新 PHP與REDIS:如何實現分散式快取失效與更新 Jul 21, 2023 pm 05:33 PM

PHP和REDIS:如何实现分布式缓存失效与更新引言:在现代的分布式系统中,缓存是一个非常重要的组件,它可以显著提高系统的性能和可扩展性。与此同时,缓存的失效与更新也是一个非常重要的问题,因为如果无法正确地处理缓存数据的失效与更新,就会导致系统数据的不一致。本文将介绍如何使用PHP和REDIS实现分布式缓存失效与更新,同时提供相关的代码示例。一、什么是RED

mozilla firefox可以卸載嗎 mozilla firefox可以卸載嗎 Mar 15, 2023 pm 04:40 PM

mozilla firefox可以卸載;firefox屬於第三方瀏覽器,如果不需要,完全可以卸載。卸載方法:1、在開始功能表中,依序點選「Windwos系統」-「控制台」;2、在「控制台」介面中,點選「程式與功能」;3、在新介面中,找到並雙擊火狐瀏覽器圖示;4、在卸載彈窗中,點選「下一步」;5、點選「卸載」即可。

火狐瀏覽器Firefox 113 新特性:支援AV1動圖、增強密碼產生器與畫中畫特性 火狐瀏覽器Firefox 113 新特性:支援AV1動圖、增強密碼產生器與畫中畫特性 Mar 05, 2024 pm 05:20 PM

近日消息,Mozilla在發布Firefox112穩定版的同時,也宣布下個主要版本Firefox113進入Beta頻道,支援AV1動圖、增強密碼產生器和畫中畫特性。火狐瀏覽器Firefox113主要新功能/新特性如下支援AV1格式動圖(AVIS)透過引入特殊字元來增強密碼產生器的安全性增強畫中畫功能,支援後退、顯示影片時間,能更輕鬆地啟用全螢幕模式為Debian和Ubuntu發行版提供官方DEB安裝檔更新書籤導入功能,預設支援導入書籤的圖示在支援的硬體上預設啟用硬體加速AV1視訊解碼使用w

Scrapy中如何使用Mozilla Firefox來解決掃碼登入的問題? Scrapy中如何使用Mozilla Firefox來解決掃碼登入的問題? Jun 22, 2023 pm 09:50 PM

對於爬蟲爬取需要登入的網站,驗證碼或掃碼登入是一個很困擾的問題。 Scrapy是Python中一個非常好用的爬蟲框架,但在處理驗證碼或掃碼登入時,需要採取一些特殊的措施。作為一個常見的瀏覽器,MozillaFirefox提供了一個解決方案,可以幫助我們解決這個問題。 Scrapy的核心模組是twisted,它只支援非同步請求,但有些網站需要使用cookie和

Ubuntu 23.10預設將在原生 Wayland 模式下執行火狐瀏覽器 Firefox Ubuntu 23.10預設將在原生 Wayland 模式下執行火狐瀏覽器 Firefox Feb 29, 2024 am 10:10 AM

Canonical公司近日宣布,在即將發布的Ubuntu23.10中,FirefoxSnap已配置預設在Wayland模式下運作。註:Ubuntu目前已經預設Wayland會話,Firefox也能正常運作。不過目前FirefoxSnap其實是以XWayland相容模式下運行,而不是嚴苛的原生Wayland模式。 Canonical宣布預設會在Wayland模式下運行Firefox瀏覽器,從而在HiDPI顯示器不會出現介面模糊、縮放失真等問題,並且支援拖曳、手勢捏合等觸控手勢。如上所述,Ubunt

火狐瀏覽器Firefox 115發布,支援Win7/Win8.1的最後一個版本 火狐瀏覽器Firefox 115發布,支援Win7/Win8.1的最後一個版本 Mar 04, 2024 pm 04:46 PM

今日最新消息,Mozilla今天正式發布了火狐瀏覽器Firefox115穩定版更新,本次更新最值得關註一點是,這是支援Win7/Win8、macOS10.12、10.13和10.14的最後一個版本。下載網址:https://ftp.mozilla.org/pub/firefox/releases/115.0/Mozilla在官方更新日誌中表示:微軟於2023年1月結束了對Win7和Win8系統的支持,而今天發布的Firefox115版本是上述系統使用者收到的最後一個版本更新。 Win7和Win8用戶

See all articles