Ajouter une feuille de style en fonction du navigateur (php)


Plutôt que des hacks css ou des adaptations via javascript (j'ai rien contre les gars, tapez pas),
 je passe parfois par php pour charger une feuille css  spécifique pour corriger certains problèmes particuliers...


Je charge une feuille css générale (par exemple style.css) et je crée (si besoin) les feuilles de correction (style-ie6.css style-ie7.css etc)
Ensuite,  le code php suivant charge les feuilles de corrections par navigateur...

<?php 
    //charger des css adaptes au navigateur
function Navigateur(){
    // renvoie le navigateur et sa version
    // ex : ff3 =firefox 3
    $s=$_SERVER['HTTP_USER_AGENT'];
    $ie=strpos(' '.$s,'MSIE');
    $fi=strpos(' '.$s,'Firefox');
    $ch=strpos(' '.$s,'Chrome');
    $op=strpos(' '.$s,'Opera');
    $sa=strpos(' '.$s,'Safari');

    if ($ie&gt;0){
        $version=substr($s,$ie+4,1);       
        return 'ie'.$version;
    } 
    if ($fi&gt;0){
        $version=substr($s,$fi+7,1);
        return 'ff'.$version;
    }
    if ($ch&gt;0){
        //$version=substr($s,$ch+6,2);
        return 'Chrome';
    }
    if ($op&gt;0){
        //$version=substr($s,$ch+6,2);
        return 'opera';
    }        
    if ($sa&gt;0){
        //$version=substr($s,$ch+6,2);
        return 'safari';
    }   


  } 

// loads common base css
echo '     &lt;link rel="stylesheet" 
type="text/css" href="http://www.warriordudimanche.net/style.css" /&gt;'."\n";
//loads special css page (if exists)
echo '     &lt;link rel="stylesheet" 
type="text/css" href="http://www.warriordudimanche.net/style-'.Navigateur().'.css').'" /&gt;';

?>

On peut améliorer l'ensemble en ne renvoyant le lien de correction que si la feuille existe.

✍ Écrire un commentaire

Inutile de poster un commentaire à la con pour vous faire de la pub, ce sera filtré et dégagé direct...

Quelle est la troisième lettre du mot bzgg ?