PHP - pre každý prehliadač iné CSS

Napsal O webu (») 27. 2. 2005 v kategorii Grafika, CSS, přečteno: 3838×

Jednoduchý návod ako si načítať pre rôzne prehliadače k nim vhodné CSS

Načítanie CSS štýlu podľa prehliadača.

Zdá sa to zložité ale nieje. Všetko čo budeme potrebovať sú dva skripty. Bolo by to možné urobiť aj v jednom skripte, ale chcem aby to bolo prehľadné. Ja sám som tento skript vyhľadával na internete a čo iné mi nepomohlo ako oficiálna stránke php. Dopredu chcem povedať, že skript si môžete bližšie pozrieť na tejto linke: Get-browser. Najprv si vytvoríme prvý skript a nazveme ho "browser.php". Toto je jeho zdrojový kód: <?php

$browser = NULL;

if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko') )
{
if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Netscape') )
{
$browser .= 'Netscape (Gecko/Netscape)';
$style .= "screen_mozilla";
}
else if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') )
{
$browser .= 'Mozilla Firefox (Gecko/Firefox)';
$style .= "screen_mozilla";
}
else
{
$browser .= 'Mozilla (Gecko/Mozilla)';
$style .= "screen_mozilla";
}
}
else if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') )
{
if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') )
{
$browser .= 'Opera (MSIE/Opera/Compatible)';
$style .= "screen_opera";
}
else
{
$browser .= 'Internet Explorer (MSIE/Compatible)';
$style .= "screen_ie";
}
}
else
{
$browser .= 'Others browsers';
$style .= "screen_ie";
}

?>
Ako vidíte máte možnosť sami spoznať prehliadače už zo zdrojového kódu. Náš skript sa od toho na oficiálnej stránke php trochu líši a to tým, že sme mu pridali premennú $style. Premennú style zapíšeme do našeho nasledujúceho skriptu - "index.php: <? include("browser.php"); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<link rel="stylesheet" href="<? echo $style; ?>.css" type="text/css" media="screen">
<title>CSS načítavanie</title>
</head>
<body>
<? echo "Bolo načítané CSS pre prehliadač $browser"; ?>
</body>
</html>
V prvom skripte browser.php sme si zadali na začiatku premennú $style a zadali sme jej hodnotu NULL, čiže žiadnu(nie nulovú). Ak skript browser.php našiel váš používaný prehliadač, ako napr. Internet Explorer, tak sa premennej priradí hodnota "screen_ie". A to je teraz kľúč k definovaniu CSS štýlu. V našom druhom sktipte si určite všimnete, že cesta k štýlu obsahuje v zápise href takýto obsah "". Príponu sme nechali v HTML kóde, lebo ju nieje nutné prenášať. Iba ak by ste používali inú príponu k CSS štýlom ako je .css.

Malý príklad ako to funguje: Spustíte si skript index.php a k nemu sa ihneď priradí aj skript browser.php, ktorému sa priradia hodnoty s vášho prehlidača (priradili sme ho pomocou include()). Povedzme si, že používame prehliadač Internet Explorer a tak si v kóde môžete prečítať zápis $browser .= 'Internet Explorer (MSIE/Compatible)'; $style .= "screen_ie;. K $browser -u nám priradil skript hodnotu Internet Explorer (MSIE/Compatible), ktorá sa nám vypíše v index.php v zápise echo medzi . A teraz keď používame Internet Explorer a zadáme si cestu k nášmu skriptu index.php, tak dosiahneme nasledujúci zdrojový kód. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<link rel="stylesheet" href="screen_ie.css" type="text/css" media="screen">
<title>CSS načítavanie</title>
</head>
<body>
Bolo načítané CSS pre prehliadač Internet Explorer (MSIE/Compatible) </body>
</html>
Prezrite si zdrojové kódy aj v Opere alebo vo Firefoxe a zistíte, že cesty k CSS štýlom sa budú líšiť. Sám som si myslel, že niečo zložité to je ale ako vidíte, tak zdanie často klame a tak som sa aj sám presvedčil, že načítanie rôznych CSS pre rôzne prehliadače je viac než ľahké :-)). To by bolo asi všetko.
Autor: PaBi3
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel osm a šest