1. 程式人生 > >根據判斷PC瀏覽器型別和手機螢幕畫素自動呼叫不同CSS

根據判斷PC瀏覽器型別和手機螢幕畫素自動呼叫不同CSS

php、asp、js判斷客戶端輸出對應的樣式

------------------- 1.媒體查詢方法在 css 裡面這樣寫 --------------------

@media screen and (min-width: 320px) and (max-width: 480px){
在這裡寫小螢幕裝置的樣式
}

@media only screen and (min-width: 321px) and (max-width: 1024px){
這裡寫寬度大於321px小於1024px的樣式(一般是平板電腦)
}

@media only screen and (min-width: 1029px){
這裡寫pc客戶端的樣式
}

------------------- 2.用js根據客戶端輸出對應樣式 --------------------

/*事實上用asp、php後臺判斷更保險,js在前端,有可能被使用者禁止*/

function loadCSS() {
 if((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|wOSBrowser|BrowserNG|WebOS)/i))) {
        document.write('<link href="css/pad-phone.css" rel="stylesheet" type="text/css" media="screen" />');
    }
    else {
        document.write('<link href="css/pc.css" rel="stylesheet" type="text/css" media="screen" />');
    }
}
loadCSS();

------------------- 3.既判斷解析度,也判斷瀏覽器-------------------

應E.Qiang提議,重新完善程式碼,使之成為判斷瀏覽器型別螢幕解析度自動呼叫不同CSS的程式碼。
程式碼如下:
<SCRIPT LANGUAGE="JavaScript">
<!--
if (window.navigator.userAgent.indexOf("MSIE")>=1)
{
var IE1024="";
var IE800="";
var IE1152="";
var IEother="";
ScreenWidth(IE1024,IE800,IE1152,IEother)
}else{
if (window.navigator.userAgent.indexOf("Firefox")>=1)
{
//如果瀏覽器為Firefox
var Firefox1024="";
var Firefox800="";
var Firefox1152="";
var Firefoxother="";
ScreenWidth(Firefox1024,Firefox800,Firefox1152,Firefoxother)
}else{
//如果瀏覽器為其他
var Other1024="";
var Other800="";
var Other1152="";
var Otherother="";
ScreenWidth(Other1024,Other800,Other1152,Otherother)
}
}
function ScreenWidth(CSS1,CSS2,CSS3,CSS4){
if ((screen.width == 1024) && (screen.height == 768)){
setActiveStyleSheet(CSS1);
}else{
if ((screen.width == 800) && (screen.height == 600)){
setActiveStyleSheet(CSS2);
}else{
if ((screen.width == 1152) && (screen.height == 864)){
setActiveStyleSheet(CSS3);
}else{
setActiveStyleSheet(CSS4);
}}}
}
function setActiveStyleSheet(title){
document.getElementsByTagName("link")[0].href="style/"+title;
}
//-->
</SCRIPT>

解釋:
var IE1024="";
var IE800="";
var IE1152="";
var IEother="";
引號裡面分別填寫,使用者使用IE的時候並且解析度為1024*768,800*600,1152*864要使用的css檔名.
var Firefox1024="";
var Firefox800="";
var Firefox1152="";
var Firefoxother="";
引號裡面分別填寫,使用者使用FF的時候並且解析度為1024*768,800*600,1152*864要使用的css檔名.
var Other1024="";
var Other800="";
var Other1152="";
var Otherother="";
引號裡面分別填寫,使用者使用其他瀏覽器的時候並且解析度為1024*768,800*600,1152*864要使用的css檔名.

例子:

不判斷解析度,只判斷瀏覽器

實現根據瀏覽器型別自動呼叫不同CSS。

<SCRIPT LANGUAGE="JavaScript">
<!--
if (window.navigator.userAgent.indexOf("MSIE")>=1)
{    
//如果瀏覽器為IE
setActiveStyleSheet("default.css");
}else{
if (window.navigator.userAgent.indexOf("Firefox")>=1)
{
//如果瀏覽器為Firefox
setActiveStyleSheet("default2.css");
}else{
//如果瀏覽器為其他
setActiveStyleSheet("newsky.css");
}
}
function setActiveStyleSheet(title){
document.getElementsByTagName("link")[0].href="style/"+title;
}
//-->
</SCRIPT>

解釋:
如果瀏覽器為IE,則呼叫default.css
如果瀏覽器為Firefox,則呼叫default2.css
如果瀏覽器為其他,則呼叫newsky.css

用法:
放在
</head>
前面即可。


只要求判斷根據螢幕寬度選擇不同的CSS樣式表。

<script language=javascript>
<!--
if (screen.width == 800)
{
document.write('<link rel=stylesheet type="text/css" href="css800.css">')
}
else {document.write('<link rel=stylesheet type="text/css" href="css1024.css">')}
//-->
</script>