Aller au contenu

Sujets conseillés

Posté

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 ... ?

Posté (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é par LaurentDenis
Posté

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.

Posté
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 !

Posté

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 :(

Posté

Selon le navigateur ou autre critère. Mais ça oblige à faire deux (ou plus) feuilles de style, contrairement à avoir une feuille de style dynamique...

Posté

Bonjour,

tu devrais te pencher sur l'url_rewriting, qui te permettrait de résoudre ton problème très facilement.

Anonymus.

Posté
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 ! :up:

Posté

Arf, j'arrive trop tard. :lol:

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. :up:

Posté

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. :clap:

Posté

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é... :blush:

Posté (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é par Fight
Posté

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. :)

Posté

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 :evil:

background-image: url(get_jpg.php?fich=image1.jpg); //marche pas :evil:

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é :down: .

Posté
.menu1 ul li { behavior:url('menu_htc.php'); }          //marche pas  :evil:

background-image: url(get_jpg.php?fich=image1.jpg); //marche pas  :evil:

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...

Posté

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 :whistling:

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... :nono:

Posté
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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...