2011-12-13 10 views
18

Desidero specificare due colori di sfondo leggermente diversi, uno per Mac OS, uno per Windows.Esiste una query multimediale CSS per rilevare Windows?

+0

Fare riferimento a questa risposta: http://stackoverflow.com/questions/2661540/detecting-the-operating-system-using-jquery-or -css Spero che aiuti. – ricardordz

+0

considera l'utilizzo di http://rafael.adm.br/css_browser_selector/ – welldan97

+1

Questa è solo una scelta di progettazione o stai facendo questo per risolvere qualche problema? – thirtydot

risposta

18

non v'è alcuna proprietà per specificare OS utilizzato per visualizzare pagine web, ma è in grado di rilevare con javascript, ecco alcuni esempi per la rilevazione Sistema operativo:

var OSName="Unknown OS"; 
if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows"; 
if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS"; 
if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX"; 
if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux"; 

console.log('Your OS: '+OSName); 

ce l'ha ?, Ora si può giocare con document.write scrivere il foglio di stile per scaricare il sistema operativo specifico. :)

un altro esempio, presuppongo che si stia utilizzando jquery.

if (navigator.appVersion.indexOf("Win")!=-1) 
{ 
    $(body).css('background','#333'); 
} else { 
    $(body).css('background','#000'); // this will style body for other OS (Linux/Mac) 
} 
0

In CSS, non possibile. Al massimo esiste un filtro @media che consente di scegliere come target i dispositivi mobili v.s. dispositivi desktop, ma non c'è il filtro di tipo @os.

È possibile ottenere con i tag condizionali di IE:

<link rel="stylesheet" href="everyone.css" type="text/css" /> 
<!--[if IE]> 
<link rel="stylesheet" href="ie.css" type="text/css" /> 
<![endif]--> 

Mettere gli stili specifici per mac nel css 'tutti', e poi sovrascrivere tutto quello che è necessario nella versione di IE.

Ovviamente, questo non funzionerà se si ottiene un utente che utilizza un IE (antico) per la versione Mac, ma dovrebbe coprire tutti gli utenti moderni.

+4

quindi supponi che tutti gli utenti di Windows utilizzino Internet Explorer? – ptriek

+0

Microsoft sicuramente vorrebbe che tu ... –

+2

Mi dispiace amico, deve essere specifico per il sistema operativo. Gli utenti Windows usano anche altri browser – colmtuite

2

è disponibile nell'ultima versione di mozilla.

-moz-os-versione fornisce i seguenti valori:

  • windows-xp
  • windows-vista
  • windows-win7
  • windows-Win8

supporto è limitato https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries

@media (-moz-os-version: windows-xp), (-moz-os-version: windows-vista), 
(-moz-os-version: windows-win7), (-moz-os-version: windows-win8) { 
    body{ 
     background-color: white; 
    } 
} 
1

Le versioni precedenti di Firefox potrebbero anche rilevare Windows (per coloro che non utilizzano l'aggiornamento automatico) e utilizzano la versione 4 o successiva. È più semplice e non dice la versione, solo il fatto che tu sia in Windows. L'ho creato per testare un po 'di tempo fa, perché ero curioso.

@media screen and (-moz-windows-theme) { 
    body { 
     background-color: white; 
    } 
} 

questo è coperto anche in https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries

Problemi correlati