搜尋
首頁web前端css教學解決CSS在瀏覽器不相容的問題

解決CSS在瀏覽器不相容的問題

Aug 14, 2017 pm 03:00 PM
firefoxwebkit

瀏覽器的不相容,大家肯定都是深惡痛絕的,往往我們只是去做修補,卻忘了更重要的事情,那就是追溯根源,避免類似的不相容再次出現。

在下不才,歸納幾點html編碼要素,望能指點各位:
1.文字本身的大小不相容。同樣是font-size:14px的宋體文字,在不同瀏覽器下佔的空間是不一樣的,ie下實際佔高16px,下留白3px,ff下實際佔高17px,上留白1px,下留白3px,opera下就更不一樣了。解決方案:為文字設定 line-height 。確保所有文字都有預設的 line-height 值。這點很重要,在高度上我們不能容忍1px 的差異。

2.ff下容器高度限定,也就是容器定義了height之後,容器邊框的外形就確定了,不會被內容撐大,而ie下是會被內容撐大,高度限定失效。所以不要輕易給容器定義height。

3.也討論內容撐破容器問題,橫向上的。若float 容器未定義寬度,ff下內容會盡量撐開容器寬度,ie下則會優先考慮內容折行。故,內容可能撐破的浮動容器需要定義width。

小實驗:有興趣大家可以看看這段實驗。在不同瀏覽器下分別測試以下各項程式碼。


a.

b.



c.

d.

d.



上面的程式碼在不同瀏覽器中是不一樣的,實驗起源於對小height 值p 的運用,

,小height 值要配合overflow:hidden一起使用。實驗好玩而已,想說明的是,瀏覽器對容器的邊界解釋是大不相同的,容器內容的影響結果各不相同。

4.浮動的清除,ff下不清除浮動是不行的。

修正大家一個迷思,遇到不相容就說ff爛是不對的,其實更多時候是ie的奇怪表現讓我們無所適從。以下列出ie6的種種劣質。

5.最被痛恨的,double-margin bug。 ie6下為浮動容器定義margin-left 或margin-right 實際效果是數值的2倍。解決方案,為浮動容器定義display:inline。

6.mirrormargin bug,當外層元素內有float元素時,外層元素如定義margin-top:14px,會自動產生margin-bottom:14px。 padding也會出現類似問題,都是ie6下的特產,這類bug 出現的情況較為複雜,遠不止於此出現條件,還沒系統整理。解:外層元素設定border 或 設定float。

引申:ff 和ie 下對容器的margin-bottom,padding-bottom的解釋有時不一致,似乎與之相關。

7.吞吃現象,限於篇幅,我就不展開了。還是ie6,上下兩個p,上面的p設定背景,卻發現下面沒有設定背景的p 也有了背景,這就是吞吃現象。對應上面的背景吞吃現象,還有滾動下邊框缺失的現象。解決方案:使用zoom:1。這個zoom好像是專門為解決ie6 bug而生的。

8.註解也能產生bug~~~「多出來的一隻豬。」這是前人總結這個bug使用的文案,ie6的這個bug 下,大家會在頁面看到豬字出現兩遍,重複的內容量因註釋的多寡而改變。解:以「 picRotate start 」方法寫註解。

9.
  • 裡加float

    ,這是一個典型的,棘手的兼容問題,希望引起大家正視,給li 不同的屬性會有不同的解釋效果,ff下的解釋稍可理解,ie6下的解釋會讓你摸不著頭腦,由於問題的複雜性,將另起一文專門討論該問題。在《ul使用心得》一文裡有相關成果,卻沒給出問題解決的過程。

    10.使用了「float:left;display:inline」的ul的奇怪表現。可以看出這句css是針對ie6下的double margin bug 而加上的display:inline,這也是我的css體系裡的重要一環,在《ul使用心得》一文中有相關闡述。而這句css用在ul上會讓你痛苦不堪。點到為止,這裡不能多說哈。 

    以上是解決CSS在瀏覽器不相容的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

  • 陳述
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    丟失的CSS技巧cohost.org丟失的CSS技巧cohost.orgApr 25, 2025 am 09:51 AM

    在這篇文章中,布萊克·莫里(Blackle Mori)向您展示了一些駭客,同時試圖推動同位HTML支持的極限。如果您敢於使用這些,以免您也被標記為CSS罪犯。

    光標的下一個CSS樣式光標的下一個CSS樣式Apr 23, 2025 am 11:04 AM

    具有CSS的自定義光標很棒,但是我們可以將JavaScript提升到一個新的水平。使用JavaScript,我們可以在光標狀態之間過渡,將動態文本放置在光標中,應用複雜的動畫並應用過濾器。

    世界碰撞:使用樣式查詢的鑰匙幀碰撞檢測世界碰撞:使用樣式查詢的鑰匙幀碰撞檢測Apr 23, 2025 am 10:42 AM

    互動CSS動畫和元素相互啟動的元素在2025年似乎更合理。雖然不需要在CSS中實施乒乓球,但CSS的靈活性和力量的增加,可以懷疑Lee&Aver Lee有一天會成為一種

    使用CSS背景過濾器進行UI效果使用CSS背景過濾器進行UI效果Apr 23, 2025 am 10:20 AM

    有關利用CSS背景濾波器屬性來樣式用戶界面的提示和技巧。您將學習如何在多個元素之間進行背景過濾器,並將它們與其他CSS圖形效果集成在一起以創建精心設計的設計。

    微笑嗎?微笑嗎?Apr 23, 2025 am 09:57 AM

    好吧,事實證明,SVG的內置動畫功能從未按計劃進行棄用。當然,CSS和JavaScript具有承載負載的能力,但是很高興知道Smil並沒有像以前那樣死在水中

    '漂亮”在情人眼中'漂亮”在情人眼中Apr 23, 2025 am 09:40 AM

    是的,讓#039;跳上文字包裝:Safari Technology Preview In Pretty Landing!但是請注意,它與在鉻瀏覽器中的工作方式不同。

    CSS-tricks編年史XLIIICSS-tricks編年史XLIIIApr 23, 2025 am 09:35 AM

    此CSS-tricks更新了,重點介紹了年鑑,最近的播客出現,新的CSS計數器指南以及增加了幾位新作者,這些新作者貢獻了有價值的內容。

    tailwind的@Apply功能比聽起來更好tailwind的@Apply功能比聽起來更好Apr 23, 2025 am 09:23 AM

    在大多數情況下,人們展示了@Apply的@Apply功能,其中包括Tailwind的單個property實用程序之一(會改變單個CSS聲明)。當以這種方式展示時,@Apply聽起來似乎很有希望。如此明顯

    See all articles

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    Safe Exam Browser

    Safe Exam Browser

    Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

    記事本++7.3.1

    記事本++7.3.1

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

    SAP NetWeaver Server Adapter for Eclipse

    SAP NetWeaver Server Adapter for Eclipse

    將Eclipse與SAP NetWeaver應用伺服器整合。

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    EditPlus 中文破解版

    EditPlus 中文破解版

    體積小,語法高亮,不支援程式碼提示功能