ie兼容性問題的

1、H5標籤兼容。

主要是ie67.在使用<header>header</header>這樣的h5標籤時在在頭部

<script>document.createElement(“header”);</script>

通過這樣創建的叫做自定義標籤。自定義標籤都是內聯元素。所以有的時候需要在css中聲明爲塊元素。

但是對每個h5標籤都這樣創建自定義標籤就會很麻煩。這樣可以引入一個插件,包含了對所有的h5標籤的聲明定義。

2、ie6.元素浮動之後,能設置寬度的話就給元素加寬度.

如果需要寬度是內容撐開,就給它裏邊的塊元素加上浮動; (比如父級是div塊元素,而子級是h2塊元素。如果是給div加浮動,那麼ie6下h2塊元素就會顯示在另一行,

此時解決方法是給h2加浮動。

3、第一塊元素浮動,第二塊元素加margin的值等於第一塊元素的寬時,在IE6下會有間隙問題;

中間有間隙。

解決方法:1)不建議這麼寫。因爲第一塊元素浮動後兩個元素就不在一個層級了。

2)用浮動解決。給第二個元素也加一個浮動。

4、IE6下子元素超出父級寬高,會把父級的寬高撐開

(正常瀏覽器)(ie6撐開)

解決方案:不要讓子元素的寬高超過父元素。

5、p 包含塊元素嵌套規則。

(p標籤下面嵌套一個div塊元素時。默認的竟然變成:<p></p><div></div><p></p>單獨出啦了。

解決方案:不能嵌套塊元素的標籤一定不要嵌套塊元素。

p、td、h不要嵌套塊元素。

6、margin兼容性問題

1)margin-top傳遞。在父級包含子級時,給子級加一個margin-top會被傳遞到父級。解決方法:給父級加邊框(非ie);觸發BFC、haslayout就可以了(overflow、zoom:1)。

2)上下margin疊加

解決方法:儘量使用同一方向的margin,比如都設置top或者bottom(值可以不一樣)。

7、display:inline-block:

在ie6下面,使用inline-block時仍然是block的屬性,並沒有橫着排。

 css2.1,ie不兼容(這樣就可以解決)

解決方案:*display:inline;*zoom:1;如右上圖。

8、IE6 最小高度問題

在正常瀏覽器下設一個div的高度爲1px。正常瀏覽器會顯示一個1px的線,但是在ie6下面會顯示:,ie6下的最小高度是19px;

解決方法:加一個overflow:hidden。

9、IE6 雙邊距,

當一個元素浮動後再設置margin,那麼就會產生雙倍邊距。

(問題) (解決)

此處設置margin-left爲50px,但是在加入一個float後,浮動變爲100px,雙倍了。一般出現在左側。

解決方案:針對ie67,添加display:inline。

10、li裏元素都浮動 li 在IE6 7  下方會產生4px間隙問題

(ie67)(正常)

解決方案:針對ie67添加*vertical-align:top;

11、浮動元素之間註釋,導致多複製一個文字問題

(問題:每多出一個span,ie6下就會多一個字)

問題產生的前提條件:兩個浮動元素中間有註釋或者內聯元素,並且和父級寬度和差不超過3px。如果把上圖的right的width改爲397px則可以解決。

1)兩個浮動元素之間避免出現內聯元素和註釋。

2)與父級寬度相差3px以上。

12、IE67父級元素overflow:hidden是包不住子級的position:relative

在子級的寬高大於父級的情況下,給父級添加overflow,是可以包住的,但是如果給子級添加一個position:relative,則無法實現。(ie67)

解決方案:給父級也加一個*position:relative,將他們放在同一個環境下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章