瀏覽器的兼容性問題

1.ie的haslayout是ie的渲染引擎的一部分,肯定元素自身的大小和組織內容,或者依賴本身的祖先元素來肯定本身的大小和組織自身內容。css

 當haslayout爲true時,須要本身來渲染本身,這時浮動或者很長很長的截斷文字,都須要本身來組織內容肯定大小。html

爲false時就須要依賴父元素。chrome

2.負責組織自身內容的元素,會有默認的佈局,例如:*html,body, *table,tr,td,*img,*input,button,file,section,fileset,*marquee(因爲設置文字滾動的),(並非全部元素都有默認的佈局layout,考慮性能和簡潔);瀏覽器

3.haslayout只存在於ie67及更低的版本,緩存

4.當ie出bug時,考慮觸發haslayout,  ie6的觸發:display:inline,width,height,float,position:absolute,cookie

                                                  ie7的觸發:max-width:;max-height:;min-width:;min-height:;position:fixed;框架

                                                  或者zoom:1;佈局

5.ie6浮動時會有雙邊距,用display:inline;解決,性能

6.ie6/7的負margin隱藏,給父元素去除haslayout,或者給子元素,position:relative;ui

7.透明度問題

 opacity:40;在ie6中很差使,須要出發haslayout,zoom:1;filter:alpha(opacity:40);

同時用css Hack來處理,條件,屬性,選擇符。<!--[if lge IE7]> 樣式<[endif]--!>  ie6*和_,ie7*,

---------------------------------------------------------------------------------------------------------------

 

 

兼容性問題

1.ie8之前當給元素設置的高小於10px;時,一般會超出所設置的高,由於ie8及遨遊,會默認給標籤一個高度,即便是空標籤;

解決方法:元素overflow:hidden;或者設置line-heigh小於你設置的高度;

 

2.img標籤爲行內標籤,有些瀏覽器當圖片並排顯示時會有間距。

解決方法:給img添加浮動。

 

3.display:inline-block在ie9如下版本都不能很好的支持;

解決方法:要全都寫display:inline-block;*display:inline;zoom:1;css Hack+觸發haslayout;

 

4.用一行代碼解決ie678910的兼容性問題。<meta http-equiv="X-UA-compatible" content="IE=IE10">指定使用ie10,

                                                        或者<meta http-equiv="X-UA-Compatible" content="chrome=1"> Google Chrome Frame也可讓IE用上Chrome的引擎:

(http://www.cnblogs.com/yoosou/archive/2012/07/27/2612443.html)

(http-equiv詳解:http://kinglyhum.iteye.com/blog/827807)

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />使用最新的ie;
這樣寫能夠達到的效果是若是安裝了GCF,則使用GCF來渲染頁面,若是沒安裝GCF,則使用最高版本的IE內核進行渲染。Google Chrome Frame(谷歌內嵌瀏覽器框架GCF)。這個插件可讓用戶的IE瀏覽器外不變,但用戶在瀏覽網頁時,實際上使用的是Google Chrome瀏覽器內核,並且支持IE六、七、8等多個版本的IE瀏覽器。

 (備註:http-equiv:能夠設置網頁的到期時間,緩存cache, cookie,利於搜索殷勤的keywords,description, 設置字符集,).

相關文章
相關標籤/搜索