Bonsoir, je regardais le tuto CSS sur les boutons et j'ai découvert compass qui permet de réécrire les border-radius et autres complications... par le code adéquat pour chaque navigateur.
Mais comme j'ai la manie de tout vouloir faire moi même je me suis penché sur la question et j'ai imaginé une structure que voici :
<?php
//Je récupère mon fichier css
$css = file_get_contents('main.css');
//Je remplace les chaines que je veux :
$css = preg_replace(
'/(box-shadow) ]*:([a-z0-9 #;]+)/i',
'-moz-$1:$2
-o-$1:$2
-webkit-$1:$2
-ms-$1:$2
-khtml-$1:$2
',
$css);
$css=preg_replace(
'/(border-radius) ]*:([a-z0-9 #;]+)/i',
'-moz-$1:$2
-o-$1:$2
-webkit-$1:$2
-ms-$1:$2
-khtml-$1:$2
',$css
);
?>
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="shortcut icon" type="image/x-icon" href="structure/img/favicon.ico" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<STYLE type="text/css"><?php
//Enfin, j'inclus mon CSS de cette façon :
echo $css;
?></STYLE>
</head>
<body>
<div class="a">Salut !!</div>
</body>
</html>
Ça fonctionne !
Et l'avantage que je trouve à cette solution c'est que ça ne bouscule pas mes habitudes d'écrire mon css et je n'ai bien sur plus besoin de me soucier des soucis de compatibilité (but premier :p ).
Mais avant de continuer, j'aimerais avoir votre avis sur la viabilité de cette méthode.
Est-ce qu'il y a des inconvénients ? J'ai pu lire dans certain articles que selon la méthode utilisée pour inclure un CSS, il ne serait pas mis en cache et serait rechargé à chaque pages, est-ce que ma solution fait partie de ces méthodes ?
Merci. :)
Salut,
Pour la méthode je dis pas mal.
Pour ce qui est du cache c'est mort, sauf si tu fais du cache PHP. A chaque requête PHP, tu demandes l'ouverture de CSS côté serveur, et tu y appliques ta méthode. Et tu l'affiches, donc le calcul sera fait chaque fois. Pour la charge du serveur ça peut vite devenir problèmatique.
Côté client, bah il ne sera même pas que le CSS existe, donc pas de cache là non plus.
Alors que Compass ou Less vont te faire ça en CSS et se sera en cache.
Il faut bien faire la différence entre Serveur(Apache) et Client(Navigateur).
A+
Tu dois pouvoir demander au navigateur de cacher ça avec un header()
Pour la méthode elle rajoute une charge serveur supplémentaire (c'est le seul inconvénient).
Dans la même idée que ton systeme il y a une version javscript : http://leaverou.github.com/prefixfree/
Merci pour vos avis.
Je vais essayer de revoir ma méthode alors, mais je suis content de savoir que c'est pas totalement idiot. :)