Esiste un elenco di condizionali del browser da utilizzare inclusi i fogli di stile?
-
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.
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
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.