2012. Coerentemente col passato -forse per tradizione- anche la versione 9 di internet explorer si conferma incompatibile con standard anche non troppo recenti e nel quadro che ne viene fuori, i webdesigner sono ancora costretti a ricorrere ad hack e magheggi vari.
Per situazioni particolarmente intricate, si potrebbe ricorrere ad una soluzione radicale, che consiste nella redazione di un foglio di stile ad hoc e di uno switch, che consenta di indirizzare il client su di esso quando necessario. Vediamo come realizzarlo con php.
Ciò di cui ci avvarremo è l’array globale $_SERVER, ed in particolare del contenuto di HTTP_USER_AGENT , posizione di esso nella quale vengono memorizzati i dati relativi al browser in uso sul client connesso.
Senza dilungarci troppo nella teoria, quello che segue è il codice bell’e pronto, da personalizzare con il path dei propri css.
Tale script va incluso o incollato nell’header della vostra pagina, laddove era presente in origine il link al foglio di stile esterno.
<?php
if (preg_match(‘/MSIE/i’, $_SERVER[‘HTTP_USER_AGENT’]))
$css= “path/completo/al/css/dedicato/a/speciale.css“;
else $css=”path/completo/al/css/normale.css“;
?>
<link rel=”stylesheet” type=”text/css” media=”all” href=”<?=$css ?>” />
Dato che il valore di user agent è decisamente lungo (si stampi un output della variabile per rendersene conto), in questo script si ricorre alla funzione preg_match, per cercare al suo interno un’espressione regolare significativa (link alla guida: se volete approfondire), che nel nostro caso è ‘/MSIE/i‘ ed indica che si sta usando internet explorer.
Non vi resta che scrivere il css (…magari su tavole di pietra).