每次设计一张网页或一个表单,都被各种浏览器的兼容问题伤透脑筋,尤其是IE家族。在做兼容性设计时,我们往往会使用各种浏览器能识别的独特语法进行hack,从而达到各种浏览器下显示正常的目的。其中,我们用得最多莫属于\9和\0了。\9和\0是hack IE8、IE9、IE11的独特标识。但是问题来了,\9和\0到底怎样hack IE8、IE9、IE11这三个浏览器?这个问题一直困扰我很久,不过,今天我终于搞明白了,也独创了一个能hack IE8、IE9、IE11这三个浏览器的代码写法模式,本文将与各位分享。
\9和\0为什么可能hack IE11\IE9\IE8无效?
可能很多人都略明白,\0是用来hack IE8、IE9、IE11的,而\9是用来hack IE9的。但有时你真正运用起来,它并不凑效。看下面的html代码:
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hack IE8/IE9/IE11_css实例_卡卡网 webkaka.com</title> <style type="text/css"> .content{ width:400px;height:50px;color:#ccc; background-color:#FF0000; /* 红色 */ background-color:#0000FF\0; /* 蓝色 */ background-color:#FFFF00\9; /* 黄色 */ } </style> </head> <body> <div class="content">IE8 IE9 IE11均显示黄色</div> </body> </html>
上例中,\9和\0就达不到hack 各IE浏览器版本的目的。不过我们把 /* 蓝色 */ 和 /* 黄色 */ 这两行调换,又会怎样显示呢?请看html代码:
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hack IE8/IE9/IE11_css实例_卡卡网 webkaka.com</title> <style type="text/css"> .content{ width:400px;height:50px;color:#ccc; background-color:#FF0000; /* 红色 */ background-color:#FFFF00\9; /* 黄色 */ background-color:#0000FF\0; /* 蓝色 */ } </style> </head> <body> <div class="content">IE11显示黄色,IE8 IE9 均显示蓝色</div> </body> </html>
结果是,IE11显示黄色,而IE8和IE9均显示蓝色。
上述两个例子说明,IE8、IE9都能读懂\9和\0标识,此两标识哪个写在后面就以哪个为准,而IE11仅能读懂\9标识。
至此,我们能否根据上述结论来写代码来hack IE8、IE9和IE11三个浏览器?显然是不可以的,至少你不可以hackIE8和IE9,仅能hackIE11。
如何hack IE8和IE9
那么,我们如何去hack IE8和IE9呢?这个就是问题的关键。
在此文 css区分ie8/ie9/ie10/ie11 chrome firefox的代码 中提到,IE9以上浏览器可以读懂此代码:
/* IE9+ */ @media all and (min-width:0) { .divContent{ background-color:#eee; } }
我们用此代码结合前面的代码,是不是就可以hack IE8和IE11了?完整html代码如下:
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hack IE8/IE9/IE11_css实例_卡卡网 webkaka.com</title> <style type="text/css"> .content{ width:400px;height:50px;color:#ccc; background-color:#FF0000; /* 红色 */ background-color:#FFFF00\9; /* 黄色 */ background-color:#0000FF\0; /* 蓝色 */ } /* IE9+ */ @media all and (min-width:0) { .content{ background-color:#000; /* 黑色 */ } } </style> </head> <body> <div class="content">IE11显示黄色,IE8 显示蓝色,IE9显示黑色。</div> </body> </html>
至此,IE8、IE9、IE11的兼容性问题就解决了。
不过,还没玩,因为 @media all and (min-width:0) 在 Chrome、Firefox、360等浏览器同样有效。所以,上面代码需要稍微修改下,在 @media all and (min-width:0) {} 里面的css语句同样加上\0标识,表示这是属于IE9的样式。修改后的完整代码如下:
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hack IE8/IE9/IE11_css实例_卡卡网 webkaka.com</title> <style type="text/css"> .content{ width:400px;height:50px;color:#ccc; background-color:#FF0000; /* 红色 */ background-color:#FFFF00\9; /* 黄色 */ background-color:#0000FF\0; /* 蓝色 */ } /* IE9+ */ @media all and (min-width:0) { .content{ background-color:#000\0; /* 黑色 */ } } </style> </head> <body> <div class="content">IE11显示黄色,IE8 显示蓝色,IE9显示黑色。</div> </body> </html>
至此,IE8、IE9、IE11的兼容性问题就完美解决了。
meta声明属性 IE=Edeg 后,IE8\IE9\IE11的兼容代码
但是,如果网页HTML代码里声明了Meta元件 IE=Edge,那么上面的代码是不对的。
先看第一个html代码:
<!DOCTYPE html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hack IE8/IE9/IE11_css实例_卡卡网 webkaka.com</title> <style type="text/css"> .content{ width:400px;height:50px;color:#ccc; background-color:#FF0000; /* 红色 */ background-color:#0000FF\0; /* 蓝色 */ background-color:#FFFF00\9; /* 黄色 */ } </style> </head> <body> <div class="content">IE11显示蓝色,IE8 IE9均显示黄色</div> </body> </html>
结果是,IE11显示蓝色,IE8 IE9均显示黄色,并非三个浏览器都显示黄色了。
这就说明,加了meta IE=Edge 这句,IE11不再能读\9这个标识。
我们再看如下代码:
<!DOCTYPE html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hack IE8/IE9/IE11_css实例_卡卡网 webkaka.com</title> <style type="text/css"> .content{ width:400px;height:50px;color:#ccc; background-color:#FF0000; /* 红色 */ background-color:#FFFF00\9; /* 黄色 */ background-color:#0000FF\0; /* 蓝色 */ } </style> </head> <body> <div class="content">IE8 IE9 IE11 均显示蓝色</div> </body> </html>
execcodegetcode
结果是,IE8 IE9 IE11 均显示蓝色,这说明了,IE8 IE9 IE11 均能读懂\0这个标识。
结合上面两个例子,可以得出结论,加了meta IE=Edge 属性后,IE8 IE9能同时读懂\9和\0这两个标识,而IE11仅能读懂\0这个标识。
所以,我们可以据此来hack出IE11。如下html代码加以说明:
<!DOCTYPE html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hack IE8/IE9/IE11_css实例_卡卡网 webkaka.com</title> <style type="text/css"> .content{ width:400px;height:50px;color:#ccc; background-color:#FF0000; /* 红色 */ background-color:#0000FF\0; /* 蓝色 这个是给IE11的 */ background-color:#FFFF00\9; /* 黄色 这个是给IE8和IE9的 */ } </style> </head> <body> <div class="content">IE11显示蓝色,IE8 IE9均显示黄色</div> </body> </html>
这样,我们再用上面的代码hack出IE8和IE9就可以了。
如何hack IE8和IE9 ?还是前面那个hack IE8 IE9的关键代码:
@media all and (min-width:0) {}
完整html代码这样写:
<!DOCTYPE html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hack IE8/IE9/IE11_css实例_卡卡网 webkaka.com</title> <style type="text/css"> .content{ width:400px;height:50px;color:#ccc; background-color:#FF0000; /* 红色 */ background-color:#0000FF\0; /* 蓝色 这个是给IE11的 */ background-color:#FFFF00\9; /* 黄色 这个是给IE8和IE9的 */ } /* IE9+ */ @media all and (min-width:0) { .content{ background-color:#000\9; /* 黑色 这个是给IE9的 */ } } </style> </head> <body> <div class="content">IE11显示蓝色,IE8显示黄色,IE9显示黑色</div> </body> </html>
以上是\9和\0可能hack IE11\IE9\IE8無效原因詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

H5與HTML5指的是同一個東西,即HTML5。 HTML5是HTML的第五個版本,帶來了語義化標籤、多媒體支持、畫布與圖形、離線存儲與本地存儲等新功能,提升了網頁的表現力和交互性。

H5referstoHTML5,apivotaltechnologyinwebdevelopment.1)HTML5introducesnewelementsandAPIsforrich,dynamicwebapplications.2)Itsupportsmultimediawithoutplugins,enhancinguserexperienceacrossdevices.3)SemanticelementsimprovecontentstructureandSEO.4)H5'srespo

H5開發需要掌握的工具和框架包括Vue.js、React和Webpack。 1.Vue.js適用於構建用戶界面,支持組件化開發。 2.React通過虛擬DOM優化頁面渲染,適合複雜應用。 3.Webpack用於模塊打包,優化資源加載。

HTML5hassignificantlytransformedwebdevelopmentbyintroducingsemanticelements,enhancingmultimediasupport,andimprovingperformance.1)ItmadewebsitesmoreaccessibleandSEO-friendlywithsemanticelementslike,,and.2)HTML5introducednativeandtags,eliminatingthenee

H5通過語義化元素和ARIA屬性提升網頁的可訪問性和SEO效果。 1.使用、、等元素組織內容結構,提高SEO。 2.ARIA屬性如aria-label增強可訪問性,輔助技術用戶可順利使用網頁。

"h5"和"HTML5"在大多數情況下是相同的,但它們在某些特定場景下可能有不同的含義。 1."HTML5"是W3C定義的標準,包含新標籤和API。 2."h5"通常是HTML5的簡稱,但在移動開發中可能指基於HTML5的框架。理解這些區別有助於在項目中準確使用這些術語。

H5,即HTML5,是HTML的第五個版本,它為開發者提供了更強大的工具集,使得創建複雜的網頁應用變得更加簡單。 H5的核心功能包括:1)元素允許在網頁上繪製圖形和動畫;2)語義化標籤如、等,使網頁結構清晰,利於SEO優化;3)新API如GeolocationAPI,支持基於位置的服務;4)跨瀏覽器兼容性需要通過兼容性測試和Polyfill庫來確保。

如何創建 H5 鏈接?確定鏈接目標:獲取 H5 頁面或應用程序的 URL。創建 HTML 錨點:使用 <a> 標記創建錨點並指定鏈接目標URL。設置鏈接屬性(可選):根據需要設置 target、title 和 onclick 屬性。添加到網頁:將 HTML 錨點代碼添加到希望鏈接出現的網頁中。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。