首頁 web前端 css教學 使用CSS多瀏覽器相容性問題及解決方法介紹

使用CSS多瀏覽器相容性問題及解決方法介紹

Mar 14, 2017 pm 04:16 PM

相容性處理重點 
1、DOCTYPE 影響CSS 處理 

2、FF: 設定padding 後, div 會增加height width, 但IE 不會, 故需要用!important 多設一個height 和width 

3、FF: 支援!important,IE 則忽略,可用!important 為FF 特別設定樣式 

4、div 的垂直居中問題: vertical-align:middle; 將行距增加到和整個DIV一樣高line-height: 200px; 然後插入文字,就垂直居中了。缺點是要控制內容不要換行 

5、在mozilla firefox和IE中的BOX模型解釋不一致導致相差2px解決方法: 

#div{margin :30px!important;margin:28px;} 

注意這兩個margin的順序一定不能寫反,!important這個屬性IE不能識別,但別的瀏覽器可以識別。所以在IE下其實解釋成這樣: 

div{maring:30px;margin:28px} 

重複定義的話按照最後一個來執行,所以不可以只寫margin:XXpx!important ; 

瀏覽器差異 
1、ul和ol列表縮排問題 

消除ul、ol等清單的縮排時,樣式要寫成:list-style:none;margin:0px;padding:0px; 
其中margin屬性對IE有效,padding屬性對FireFox有效。

[註]經驗證,在IE中,設定margin:0px可以去除列表的上下左右縮排、空白以及列表編號或圓點,設定padding對樣式沒有影響;在Firefox 中,設定margin :0px僅僅可以去除上下的空白,設定padding:0px後僅可以去掉左右縮進,還必須設定list- style:none才能去除列表編號或圓點。也就是說,在IE中只設定margin:0px即可達到最終效果,而在Firefox中必須同時設定margin:0px、 padding:0px以及list-style:none三項才能達到最終效果。 

2、CSS透明問題 

IE:filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。 
FF:opacity:0.6。 
[註] 最好兩個都寫,並將opacity屬性放在下面。 

3、CSS圓角問題 

IE:ie7以下版本不支援圓角。
FF: -moz-border-radius:4px,或-moz-border-radius-topleft:4px;-moz- border - radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz- border- radius- bottomright:4px;。 
[註] 圓角問題是CSS中的經典問題,建議使用JQuery框架集來設定圓角,讓這些複雜的問題留給別人去想吧。不過jQuery的圓角只看到支撐整個區域的圓角,沒有支援邊框的圓角,不過這個邊框的圓角可以透過一些簡單的手段來實現,下次有機會介紹下。 

4、cursor:hand VS cursor:pointer 

問題說明:firefox不支援hand,但ie支援pointer ,兩者都是手形指示。 
解決方法:統一使用pointer。 

5.字體大小定義不同 

對字體大小small的定義不同,Firefox中為13px,而IE中為16px,差異性挺大。 

解決方法:使用指定的字體大小如14px。

並列排列的多個元素(圖片或連結)的div和div之間,程式碼中的空格和回車在firefox中都會被忽略,而IE中卻預設顯示為空格(約3px)。 

6、CSS雙線凹凸邊框 
IE:border:2px outset;。
FF: -moz-border-top-colors: #d4d0c8 white;-moz-border-left-colors: #d4d0c8 white;-moz-border-right-colors:#404040 #808080;-moz-border-right-colors:#404040 #808080;-moz-border-right-colors:#404040 #808080;-moz-border-right- bottom-colors:#404040 #808080; 

瀏覽器bug 
1、IE的雙邊距bug 

#設定為float的div在ie下方設定的margin會加倍。這是一個ie6都存在的bug。

解決方案:在這個div裡面加上display:inline; 

例如: 

<#div id=”imfloat”>

對應的css為 

以下為引用的內容: 

#IamFloat{ 
float:left; 
margin:5px;/*IE下理解为10px*/ 
display:inline;/*IE下再理解为5px*/ 
} 
#IamFloat{ 
float:left; 
margin:5px;/*IE下理解为10px*/ 
display:inline;/*IE下再理解为5px*/ 
}
登入後複製

關於CSS中的問題實在太多了,甚至同樣的CSS定義在不同的頁面標準中的顯示效果都是不一樣的。一個合乎發展的建議是,頁面採用標準XHTML標準編寫,較少使用table,CSS定義盡量依照標準DOM,同時兼顧IE、Firefox、Opera等主流瀏覽器。很多情況下,FF和 Opera的CSS解釋標準更貼近CSS標準,也更具規範性。 

2、IE選擇符空格BUG 
今天在為部落格的段落樣式設定首字樣式的時候發現,原來一個空格也可以讓樣式失效。 

請看以下程式碼: 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="//www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
<style type="text/css"> 
<!-- 
p{font-size:12px;} 
p:first-letter{font-size:300%} 
--> 
</style> 
</head> 
<body>
登入後複製

對世界而言,你是一個人;但是對於某個人,你是他的整個世界。縱然傷心,也不要愁眉不展,因為你不知是誰會愛上你的笑容。

 
 
 
[/code] 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="//www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
<style type="text/css"> 
<!-- 
p{font-size:12px;} 
p:first-letter{font-size:300%} 
--> 
</style> 
</head> 
<body> 

对于世界而言,你是一个人;但是对于某个人,你是他的整个世界。纵然伤心,也不要愁眉不展,因为你不知是谁会爱上你的笑容。

登入後複製

這段程式碼對

的首字樣式定義在IE6上看是沒有效果的(IE7沒測試),而在p:first-letter和{font-size:300%}加上空格,也就是p:first-letter {font-size:300%}後,顯示就正常了。但是同樣的程式碼,在FireFox下看是正常的。照道理說,p:first-letter{font-size:300%}的寫法是沒錯的。那麼問題出在哪裡呢?答案是偽類中的連字號」-」。 IE有個BUG,在處理偽類時,如果偽類的名稱中帶有連字符”-”,偽類名稱後面就得跟一個空格,不然樣式的定義就無效。而在FF中,加不加空格都可以正常處理。

以上是使用CSS多瀏覽器相容性問題及解決方法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1655
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1226
24
Google字體可變字體 Google字體可變字體 Apr 09, 2025 am 10:42 AM

我看到Google字體推出了新設計(Tweet)。與上一次大型重新設計相比,這感覺更加迭代。我幾乎無法分辨出區別

如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 Apr 11, 2025 am 11:29 AM

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

HTML數據屬性指南 HTML數據屬性指南 Apr 11, 2025 am 11:50 AM

您想了解的有關HTML,CSS和JavaScript中數據屬性的所有信息。

如何通過CSS選擇第一個類名為item的子元素? 如何通過CSS選擇第一個類名為item的子元素? Apr 05, 2025 pm 11:24 PM

在元素個數不固定的情況下如何通過CSS選擇第一個指定類名的子元素在處理HTML結構時,常常會遇到元素個數不�...

為什麼Flex佈局中的紫色斜線區域會被誤認為是'溢出空間”? 為什麼Flex佈局中的紫色斜線區域會被誤認為是'溢出空間”? Apr 05, 2025 pm 05:51 PM

關於Flex佈局中紫色斜線區域的疑問在使用Flex佈局時,你可能會遇到一些令人困惑的現象,比如在開發者工具(d...

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

在前端開發中,如何使用CSS和JavaScript實現類似Windows 10設置界面的探照燈效果? 在前端開發中,如何使用CSS和JavaScript實現類似Windows 10設置界面的探照燈效果? Apr 05, 2025 pm 10:21 PM

在前端開發中如何實現類似Windows...

我們如何創建一個在SVG中生成格子呢模式的靜態站點 我們如何創建一個在SVG中生成格子呢模式的靜態站點 Apr 09, 2025 am 11:29 AM

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tar​​tanify.com上,我們收集了5,000多個格子呢

See all articles