ste Posté 12 Avril 2004 Posté 12 Avril 2004 elo, all, bon , j'ai voulu écrire ma feuille de style avec inclusion de PHP, (pour declaration CSS selon navigateurs...) ... je l'ai introduite ainsi dans mon code html : <style type="text/css"><!-- _AT_import url(http://wai.stephane-huc.net/css.php) screen;--></style> Mais, là, les navigateurs à moteur Gecko, ils ne la lisent pas !!! Il doit surement y avoir une astuce ... ?
LaurentDenis Posté 12 Avril 2004 Posté 12 Avril 2004 (modifié) Pourquoi l'import dans des commentaires ? Enlève-les, et ça ira beaucoup mieux [edit : oubliez-ça, je ne devais pas être bien réveillé. Sorry ] Modifié 13 Avril 2004 par LaurentDenis
Fight Posté 12 Avril 2004 Posté 12 Avril 2004 Bonjour, oui avec un doctype xhtml strict mozilla n'accepte que les feuilles de style portant une extension .css Je n'ai jamais compris pourquoi, si quelqu'un a une solution à ce problème je suis également preneur.
ste Posté 12 Avril 2004 Auteur Posté 12 Avril 2004 Pourquoi l'import dans des commentaires ? Enlève-les, et ça ira beaucoup mieux Justement... cela doit être ! Et, ce n'est pas cela qui empêche la détection par ces navigateurs... c'est ble et bien le fait d'être nommé .php et non .css !
Country Posté 12 Avril 2004 Posté 12 Avril 2004 Mmmm... Bin je ne vois que sa solution de faire sa avec des fonctions if() en php pour déterminer la feuille de style à inclure suivant le navigateur
Fight Posté 12 Avril 2004 Posté 12 Avril 2004 Selon le navigateur ou autre critère. Mais ça oblige à faire deux (ou plus) feuilles de style, contrairement à avoir une feuille de style dynamique...
Anonymus Posté 14 Avril 2004 Posté 14 Avril 2004 Bonjour, tu devrais te pencher sur l'url_rewriting, qui te permettrait de résoudre ton problème très facilement. Anonymus.
ste Posté 14 Avril 2004 Auteur Posté 14 Avril 2004 bon , j'ai voulu écrire ma feuille de style avec inclusion de PHP, (pour declaration CSS selon navigateurs...) ... <style type="text/css"><!-- _AT_import url(http://wai.stephane-huc.net/css.php) screen;--></style> Sur les conseils d'une connaissance, j'ai tout simplement rajouté : <?php header('Content-type: text/css'); ?> Qui fonctionne bel et bien !
Denis Posté 17 Avril 2004 Posté 17 Avril 2004 Arf, j'arrive trop tard. Je déclare le content type à tout coup pour faire mes fichiers CSS avec des extensions php et ça fonctionne à merveille. Du coup, ça permet de créer des fichiers CSS paramétrables, ce qui est vraiment très pratique, notamment pour les fonctionnalités de styleswitching.
Country Posté 17 Avril 2004 Posté 17 Avril 2004 Merci, je n'y avait pas pensé. Je sens que sa va me servir sa
Denis Posté 17 Avril 2004 Posté 17 Avril 2004 Super ! C'est que c'est particulièrement intéressant pour permettre la paramétrisation du texte pour l'ensemble du site... Dès que la valeur du font-size sur le body est exprimée en valeur relative et que toutes les tailles subséquentes sont spécifiées en fonction de la taille initiale au body, tout le texte du site augmentera ou diminuera simplement en changeant cette valeur initiale. Lorsque celle-ci est passée en paramètre, dans le fichier css (styles.php), il suffit de passer une nouvelle valeur et hop, on adapte la visibilité à l'écran en un clin d'oeil et on obtient un styleswitcher géré en backend (donc vraiment accessible) qui a aussi le mérite d'également promouvoir l'accessibilité en terme de lisibilité du contenu.
poxod Posté 19 Avril 2004 Posté 19 Avril 2004 Vous pensez qu'il serait possible d'appliquer ça au fichier .htc ? Par exemple, j'aimerais remplacer le code CSS : .menu1 ul li { behavior:url('menu.htc'); } par ceci : .menu1 ul li { behavior:url('menu_htc.php'); } afin de pouvoir générer dynamiquement le contenu du fichier htc. J'ai tenté avec les header suivant dans le php : header('Content-type: text/plain'); header('Content-type: text/x-component'); header('Content-type: text/xml'); Mais, pour l'instant, tous mes essais n'ont rien donné...
Fight Posté 19 Avril 2004 Posté 19 Avril 2004 (modifié) En tout cas merci beaucoup pour l'astuce, j'avais cherché tout un tas de trucs plus complexes les uns que les autres, mais parfoir la solution la plus simple et aussi la plus efficace. Merci pour l'astuce :-) Modifié 19 Avril 2004 par Fight
Jez Posté 19 Avril 2004 Posté 19 Avril 2004 En effet, fallait y penser, mais moi aussi ca va me servir merci pour l'idée
Denis Posté 19 Avril 2004 Posté 19 Avril 2004 Y'a pas de quoi. L'astuce est forcément simple puisque je peux l'utiliser... mon PHP étant assez limité, j'essaie de redoubler d'astuce pour arriver à mes fins sans constamment devoir déranger mon ami programmeur qui s'occupe du boulot plus costaud ! D'ailleurs le simple fait que je vous file un truc relié à la programmation backEnd, compte tenu de mes limites, est déjà pas mal ironique ! Une chance pour moi que je suis capable de faire preuve D'imagination autrement, je ne pourrais pas aller très loin. Pour ce qui est de ta question Poxod, désolé, mais ça c'est déjà au dessus de mes capacités.
poxod Posté 22 Avril 2004 Posté 22 Avril 2004 Bon j'ai fais d'autres tests... et il semble que cette technique ne peut pas être généralisée , et j'avoue que je ne comprends pas pourquoi. Donc pour résumer on peut pointer vers un fichier php via une commande _AT_import, par exemple : _AT_import url(http://wai.stephane-huc.net/css.php) screen; Mais il semble que ce soit la seule commande css qui accepte ce genre de chose. Par exemple: impossible de pointer vers un php via une commande behavior, ni même avec avec un background-image : .menu1 ul li { behavior:url('menu_htc.php'); } //marche pas background-image: url(get_jpg.php?fich=image1.jpg); //marche pas Qu'est-ce que ca signifie ? les moteurs css n'accèdent pas aux ressources url de façon uniforme ? elles ne le font pas via des commandes HTTP GET conventionnelles ? Je suis dégouté .
ste Posté 22 Avril 2004 Auteur Posté 22 Avril 2004 .menu1 ul li { behavior:url('menu_htc.php'); } //marche pas background-image: url(get_jpg.php?fich=image1.jpg); //marche pas et si tu faisais un appel à ton fichier get_jpg.php pour retourner dans une variable ton résultat ainsi : <?php$image = $_GET["fich"];echo "background-image: url($image);"; ?> ??? P.S : attention, pense à sécuriser le retour du code qui peut être envoyé dans ta variable...
poxod Posté 22 Avril 2004 Posté 22 Avril 2004 En fait je me suis trompé... pour background-image: url(...) ca marche bien, on peut pointer vers un php. J'avais juste fait une erreur de syntaxe dans mon fichier de test Par contre pour behavior:url(...) ca semble vraiment impossible. En plus figurez vous que si je configure mon serveur Web (local) pour faire en sorte que l'extension de fichier ".htc" soit interprété comme des fichiers php, et bien ca marche ! Je peut écrire de cette facon des fichier ".htc" avec du code php dedans et générer ainsi des 'behavior' dynamiquement. Le probème c'est qu'on peut pas toucher à la configuration des serveurs web des hébergeurs.... En tout cas ca semble indiquer que la commande behavior:url(...) ne fonctionne qu'avec des fichiers qui se termine par l'extension '.htc', du coup c'est purement syntaxique et c'est donc incontournable...
Dan Posté 22 Avril 2004 Posté 22 Avril 2004 Le probème c'est qu'on peut pas toucher à la configuration des serveurs web des hébergeurs.... Mais tu as peut-être la possibilité d'utiliser une directive AddType dans le .htaccess ? AddType application/x-httpd-php .htc Dan
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant