Sposoby wykrywania przeglądarki użytkownika w HTML

17 lut
{lang: 'pl'}

Często się zdarza, że potrzebne jest wczytanie osobnego stylu dla Internet Explorera i osobnego dla normalnych przeglądarek. Często też istnieje potrzeba wyłuskania Nazwy przeglądarki lub inych danych i zapisnaie ich np do bazy danych. Na szczęście nie jest to żadnym problemem.

Conditional Comments czyli wykrywanie IE w HTMLu

Html jest językiem statycznym interpretownym przez przęglądarkę, nie ma w nim zmiennych, pętli itp. Istnieje jednak coś takiego jak tzw. Conditional Comments, czyli blok kodu, interpretowany przez jeden rodzaj przeglądarek. Wszyscy już chyba wiedzą o jakie przeglądarki chodzi.

<!--[if IE]>
<div><span>Masz Internet Explorera</span></div>
<![endif]-->

lub

<!--[if !IE]>
<div><span>Nie masz Internet Explorera</span></div>
<![endif]-->

Jak widać sposób jest bardzo prosty i możliwe jest pozbycie się problemów błędów w intrerpretacji css przy pomocy conditional comments, wczytująć inny styl dla przeglądarek Internet Explorer.

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

Możliwe jest również wykrycie konkretnej wersji Internet Explorera.

<!--[if IE 6]>
<div><span>Masz Internet Explorera 6</span></div>
<![endif]-->

Sposób ten działa dla rożnych wersji. tj. 5, 5.5, 6, 6.5 itd.

Ale co kiedy chciałbym żeby wczytywany był osobny styl dla przeglądarki IE6 i osobny dla poźniejszych wersji ( nowsze wersje mają nowsze błędy itp. )

Jednym ze sposobów jest osobne zadeklarowanie stylu dla IE6 osobnego dla IE6.5 osobnego dla IE7 itd. Ale sposób ten jest bardzo brzydki i nie należy go stosować. Całe szczęście conditional comments oferują także nieco bardziej zaawansowane opcje. Dzięki tym opcjom mogę wczytać osobny styl dla IE6 i osobny dla IE wyżej niż 6.



Deklaracja ta mówi:

Wczytaj mi plik ie6.css gdy wersja IE jest równa 6 albo wczytaj mi plik ie.css gdy wersja IE jest większa niż 6

Jak widać pojawił się nowy operator gt który jest skrótem od greater than i znaczy dokładnie: więcej niż

Operatorów tych jest więcej:

Rodzaje operatorów w conditional comments
gt greater than większa niż
lt less than mniejsza niż
gte greater than equal większa bądź rowna
lte less than equal mniejsza bądź równa
Print Friendly

Wyszukiwane frazy:

  • Conditional comments (3)
  • wykrywanie przeglądarki html (3)
  • wykrywanie wersji ie7 (2)
  • wykrywanie wersji ie php (2)
  • sposoby wykrywania użytkownika ie (2)
  • symfony wykrywanie przegladarki (2)
  • ![endif] pętla html (1)
  • sprawdzanie przeglądarki wczytanie styli (1)
  • wczytanie stylów dla explorera (1)
  • wykrycie przeglądarki css (1)

Inne posty:

  1. Sposoby wykrywania przeglądarki użytkownika cz.2- JavaScript- Obiekt navigator

Tagi: , ,

« »

[B]log programistyczny

IP 38.107.179.240 (38.107.179.240)