本篇文章給大家帶來了幾個demo把IE6~IE10和其他標準瀏覽器的CSS hack做一個總結,希望對大家有幫助。
什么是CSS hack
由于不同廠商的流覽器或某瀏覽器的不同版本(如IE6-IE11,Firefox/Safari/Opera/Chrome等),對CSS的支持、解析不一樣,導致在不同瀏覽器的環境中呈現出不一致的頁面展現效果。這時,我們為了獲得統一的頁面效果,就需要針對不同的瀏覽器或不同版本寫特定的CSS樣式,我們把這個針對不同的瀏覽器/不同版本寫相應的CSS code的過程,叫做CSS hack!
CSS hack的原理
由于不同的瀏覽器和瀏覽器各版本對CSS的支持及解析結果不一樣,以及CSS優先級對瀏覽器展現效果的影響,我們可以據此針對不同的瀏覽器情景來應用不同的CSS。
CSS hack分類
CSS Hack大致有3種表現形式,CSS屬性前綴法、選擇器前綴法以及IE條件注釋法(即HTML頭部引用if IE)Hack,實際項目中CSS Hack大部分是針對IE瀏覽器不同版本之間的表現差異而引入的。
- 屬性前綴法(即類內部Hack):例如 IE6能識別下劃線"_"和星號" * ",IE7能識別星號" * ",但不能識別下劃線"_",IE6~IE10都認識"9",但firefox前述三個都不能認識。
- 選擇器前綴法(即選擇器Hack):例如 IE6能識別*html .class{},IE7能識別*+html .class{}或者*:first-child+html .class{}。
- IE條件注釋法(即HTML條件注釋Hack):針對所有IE(注:IE10+已經不再支持條件注釋): <!–[if IE]>IE瀏覽器顯示的內容 <![endif]–>,針對IE6及以下版本: <!–[if lt IE 6]>只在IE6-顯示的內容 <![endif]–>。這類Hack不僅對CSS生效,對寫在判斷語句里面的所有代碼都會生效。
CSS hack書寫順序,一般是將適用范圍廣、被識別能力強的CSS定義在前面。
CSS hack方式一:條件注釋法
這種方式是IE瀏覽器專有的Hack方式,微軟官方推薦使用的hack方式。舉例如下
只在IE下生效 <!--[if IE]> 這段文字只在IE瀏覽器顯示 <![endif]--> 只在IE6下生效 <!--[if IE 6]> 這段文字只在IE6瀏覽器顯示 <![endif]--> 只在IE6以上版本生效 <!--[if gte IE 6]> 這段文字只在IE6以上(包括)版本IE瀏覽器顯示 <![endif]--> 只在IE8上不生效 <!--[if ! IE 8]> 這段文字在非IE8瀏覽器顯示 <![endif]--> 非IE瀏覽器生效 <!--[if !IE]> 這段文字只在非IE瀏覽器顯示 <![endif]-->
CSS hack方式二:類內屬性前綴法
屬性前綴法是在CSS樣式屬性名前加上一些只有特定瀏覽器才能識別的hack前綴,以達到預期的頁面展現效果。
IE瀏覽器各版本 CSS hack 對照表
說明:在標準模式中
- “-″減號是IE6專有的hack
- “9″ IE6/IE7/IE8/IE9/IE10都生效
- “ 精品久久久无码中文字幕天天| 嘿嘿射久草日韩视频| 精品调教CHINESEGAY| 久久免费精品视频| 兽交精品99高清毛片| 国产精品青草久久久久福利99| 日韩视频在线观看| 国产日韩AV免费无码一区二区三区| 国产青草亚洲香蕉精品久久| 国产精品高清视亚洲一区二区| 国产成人精品免费午夜app| 久久久精品国产sm调教网站| 久久久久久影院久久久久免费精品国产小说 | 日本无码小泬粉嫩精品图| 日韩精品电影一区| 日韩av.com| 国产成人亚洲精品无码AV大片| 蜜桃精品免费久久久久影院| 亚洲精品无码久久| 中日韩精品无码一区二区三区| 亚洲国产精品免费观看 | 热久久视久久精品18| 国产精品合集一区二区三区| 亚洲一区二区三区国产精品无码| 亚洲欧洲日本精品| 国产精品视频久久| 亚洲午夜成人精品无码色欲| 亚洲国产精品无码久久久秋霞1| 午夜麻豆国产精品无码| 国产精品麻豆成人AV网| 国产精品深爱在线| 四虎8848精品永久在线观看| 日韩在线视频线视频免费网站| 久久精品无码一区二区三区日韩 | 国产精品亚洲а∨无码播放| 自拍偷在线精品自拍偷无码专区| 国产亚洲一区二区精品| 久久精品亚洲一区二区| 麻豆成人久久精品二区三区免费| 99ee6热久久免费精品6| 亚洲国产精品成人精品软件|