相容新處理要點

2021-09-01 19:43:00 字數 2841 閱讀 6864

相容性處理要點

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的順序一定不能寫反,!important這個屬性ie不能識別,但別的瀏覽器可以識別。所以在ie下其實解釋成這樣:

div

重複定義的話按照最後乙個來執行,所以不可以只寫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。

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-bottom-colors:#404040 #808080;

瀏覽器bug

1、ie的雙邊距bug

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

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

例如:

<#div id=」imfloat」>

相應的css為

以下為引用的內容:

複製****如下:

#iamfloat

#iamfloat

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

2、ie選擇符空格bug

今天在給部落格的段落樣式設定首字元樣式的時候發現,原來乙個空格也可以使樣式失效。

請看以下**:

複製****如下:

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

[/code]

複製****如下:

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

這段**對的首字元樣式定義在ie6上看是沒有效果的(ie7沒測試),而在p:first-letter和加上空格,也就是p:first-letter 後,顯示就正常了。但是同樣的**,在firefox下看是正常的。按道理說,p:first-letter的寫法是沒錯的。那麼問題出在**呢?答案是偽類中的連字元」-」。ie有個bug,在處理偽類時,如果偽類的名稱中帶有連字元」-」,偽類名稱後面就得跟乙個空格,不然樣式的定義就無效。而在ff中,加不加空格都可以正常處理。

詳細出處參考:

IE vs FF CSS 相容要點

ie vs ff css 相容要點 doctype 影響 css 處理 ff div 設定 margin left,margin right 為 auto 時已經居中,ie 不行 ff body 設定 text align 時,div 需要設定 margin auto 主要是 margin left...

瀏覽器相容性處理要點

相容性處理要點 1 doctype 影響 css 處理 2 ff 設定 padding 後,div 會增加 height 和 width,但 ie 不會,故需要用 important 多設乙個 height 和 width 3 ff 支援 important,ie 則忽略,可用 important ...

CSS相容要點分析

ie vs ff css 相容要點 doctype 影響 css 處理 ff div 設定 margin left,margin right 為 auto 時已經居中,ie 不行 ff body 設定 text align 時,div 需要設定 margin auto 主要是 margin left...