Esiste un elenco di condizionali del browser da utilizzare inclusi i fogli di stile?

StackOverflow https://stackoverflow.com/questions/46124

  •  09-06-2019
  •  | 
  •  

Domanda

Ho visto persone fare cose del genere nel loro HTML:

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

Funziona su tutti i browser moderni ed esiste un elenco di tipi di browser che funzioneranno con questo tipo di istruzione if?

Modificare

Grazie Ross.Interessante da scoprire gt, lt, gte e lte.

È stato utile?

Soluzione

Funziona su tutti i browser perché vede qualsiasi cosa tranne IE <!--IGNORED COMMENT-->.Solo IE legge il commento se contiene una clausola condizionale.Dai un'occhiata a Questo articolo

Puoi anche specificare quale versione di IE.Per esempio:

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

Altri suggerimenti

Se puoi utilizzare Javascript, ci sono diverse opzioni:

navigator.appName
navigator.appVersion 

collegamento

O qualcosa di più robusto utilizzando una libreria come jQuery.

Infine, potresti usare il file Rilevamento browser oggetto da QuirksMode.

Una volta che hai il nome e la versione del browser, puoi inserire HTML per collegarti a un foglio di stile o includere altri tag.

In seguito alla risposta di Ross, puoi scegliere come target il motore di rendering di Internet Explorer solo con commenti condizionali;non esiste un costrutto simile per altri browser.Ad esempio, non è possibile scrivere commenti condizionali destinati a Firefox, ma che vengano ignorati da Internet Explorer.

Il modo in cui ottengo lo stesso effetto del tuo esempio sopra è annusare la stringa dell'agente utente.Quindi consegno un file CSS adatto per quel browser.Questo non è perfetto perché a volte le persone modificano la stringa dello user-agent per compatibilità.

L'altro modo per prendere di mira diversi browser è utilizzare hack specifici del browser.Questi sono particolarmente dannosi perché di solito si basano su bug nel browser e i bug possono essere risolti!

Secondo me, lo sniffing dello user-agent è la migliore soluzione a tutto tondo.

I commenti condizionali sono esclusivamente per IE (versione 5 e successive).La documentazione ufficiale di Microsoft è Qui.Se intendi utilizzarli, la strategia migliore è includere in modo condizionale fogli di stile esterni o file javascript dopo i normali include.Ciò significa che su IE il tuo codice specifico di IE sovrascriverà tutto il resto.Su qualsiasi altro browser il codice verrà trattato come commenti e ignorato dal parser.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top