在WordPress主題開發(fā)的過程中,我們需要根據(jù)瀏覽器的不同,針對(duì)某些老舊的瀏覽器(IE瀏覽器)寫一些 CSS,以解決兼容性問題,WordPress 為我們提供了判斷網(wǎng)站訪客使用的瀏覽器的全局變量,這些變量返回的是一個(gè)布爾值。
WordPress 提供的判斷用戶瀏覽器的全部變量
$is_iphone (boolean) iPhone Safari
$is_chrome (boolean) 谷歌瀏覽器
$is_safari (boolean) Safari 瀏覽器
$is_NS4 (boolean) Netscape 瀏覽器
$is_opera (boolean) Opera 瀏覽器
$is_macIE (boolean) Mac 平臺(tái)的IE瀏覽器
$is_winIE (boolean) Windows 平臺(tái)的IE瀏覽器
$is_gecko (boolean) FireFox 瀏覽器
$is_lynx (boolean) Linux 系統(tǒng)中的純文本瀏覽器
$is_IE (boolean) Internet Explorer
為什么沒有諸如:360,搜狗這些國(guó)產(chǎn)瀏覽器呢?因?yàn)檫@些瀏覽器使用的是所謂的 IE、谷歌瀏覽器雙內(nèi)核,根據(jù)使用的模式不同會(huì)被判斷成谷歌或者 IE 瀏覽器。
怎么判斷 IE 瀏覽器的版本?
上面的代碼,可以判斷用戶使用的是哪個(gè)瀏覽器?但是卻判斷不了用戶使用的瀏覽器的版本,得益于方便的更新機(jī)制,其他瀏覽器一般都會(huì)更新到最新版本,和最新版本最近的幾個(gè)版本的渲染表現(xiàn)也都差不多。IE 瀏覽器一直是奇葩,現(xiàn)存的 IE 瀏覽器從 IE6 到 IE11,每個(gè)版本的表現(xiàn)都千差萬別,所以判斷一下IE瀏覽器的版本是非常有必要的。因?yàn)?WordPress 沒有提供判斷 IE 瀏覽器版本的函數(shù),所以,我們只能自己動(dòng)手了。
$browser = $_SERVER['HTTP_USER_AGENT'];
$browser = substr( "$browser", 25, 8);
if ($browser == "MSIE 7.0" ) {
$classes[] = 'ie7';
$classes[] = 'ie';
} elseif ($browser == "MSIE 6.0" ) {
$classes[] = 'ie6';
$classes[] = 'ie';
} elseif ($browser == "MSIE 8.0" ) {
$classes[] = 'ie8';
$classes[] = 'ie';
} elseif ($browser == "MSIE 9.0" ) {
$classes[] = 'ie9';
$classes[] = 'ie';
} else {
$classes[] = 'ie';
}
把我們可以把判斷出來的瀏覽器版本寫入到頁面的 body 標(biāo)簽中,然后針對(duì)某個(gè)有 Bug 的瀏覽器專門寫 CSS,等這個(gè)瀏覽器徹底從互聯(lián)網(wǎng)上消失了,直接把針對(duì)這個(gè)瀏覽器寫的樣式刪除掉就可以了。這樣做的好處是減少了CSS 的 Hack,后期維護(hù)起來也輕松了很多。


