1、css兼容問題
(1)IE6不識別html5標籤
解決:引入html5shiv.js庫
(2)IE6元素左右浮動,子元素設置高度後,父元素的浮動消失
解決:給子元素也加上浮動
(3)IE6下第一塊元素浮動後,第二塊元素加的margin-left值等於第一塊元素的寬度,會有間隙問題
解決:第二塊元素去掉margin-left,添加浮動
(4)IE6下子元素寬高大於父元素寬高時,會把父元素撐開
解決:不讓子元素寬高大於父元素寬高
(5)p、td、h標籤都不要嵌套塊元素
(6)margin-top傳遞
解決:觸發BFC或者haslayout
上邊距margin疊加
解決:儘量使用同方向的margin,比如都設置top或bottom
(7)IE6下display:inline-block無效
解決:加上dispaly:inline-block;dispaly:inline;*zoom:1;
(8)IE6下最小高度1px卻爲19px
解決:加上overflow:hidden;
(9)IE6/7下,元素浮動後再加上margin會出現雙邊距問題
解決:加上*dispaly:inline;
(10)IE6/7下,假如li中的子元素都浮動,li之間會有4px間隙問題
解決:在li中添加*vertical-align:top;
(11)IE6下兩個浮動元素中間有註釋或者行內元素,並且浮動元素和父元素寬度相差3px,會出現文字溢出bug
解決:避免兩個浮動元素中間有註釋或者行內元素,或者與父元素寬度相差3px以上
(12)IE6/7下,父元素的overflow:hidden包不住子元素,假如子元素有position:relative定位
解決:給父元素也加上position:relative定位
(13)IE6下父元素寬高爲奇數且有定位時,子元素相對父元素的定位會有1px的偏差
解決:避免父元素寬高爲奇數
(14)IE6下input的空隙
解決:input加float:left
(15)IE6下輸入類型控件中圖片會輸輸入的內容滾動
解決:給圖片加fixed定位
BFC的觸發:
根元素或其它包含它的元素;
浮動 (元素的float
不爲none
);
絕對定位元素 (元素的position
爲absolute
或fixed
);
行內塊inline-blocks
(元素的 display:
inline-block
);
表格單元格(元素的display:
table-cell
,HTML表格單元格默認屬性);
overflow
的值不爲visible
的元素;
彈性盒 flex boxes (元素的display:
flex
或inline-flex
);
BFC的特性:
一個元素不能同時存在於兩個BFC中;
內部的盒會在垂直方向一個接一個排列(可以看作BFC中有一個的常規流);
處於同一個BFC中的元素相互影響,可能會發生margin collapse;
每個元素的margin box的左邊,與容器塊border box的左邊相接觸(對於從左往右的格式化,否則相反)。即使存在浮動也是如此;
BFC就是頁面上的一個隔離的獨立容器,容器裏面的子元素不會影響到外面的元素,反之亦然;
計算BFC的高度時,考慮BFC所包含的所有元素,連浮動元素也參與計算;
浮動盒區域不疊加到BFC上;