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,將他們放在同一個環境下。