IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Modifier feuille de style


Sujet :

HTML

  1. #1
    Membre averti
    Inscrit en
    Avril 2003
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 57
    Par défaut Modifier feuille de style
    Voila mon probleme,


    j'ai une feuille de style par defaut pour un site.
    Dans une base de données, j'ai des champs concernant l'affichage du site des utilisateurs car l'affichage est paramétrable (couleur de fond, taille texte,couleur police...) en fonction de chacun.
    Car c'est un site pour mal-voyants.
    Lorsque je recupere la valeur de ces champs je voudrais modifier ma feuille de style dynamiquement en fonction de ces valeurs?

    Est ce possible? en javascript? ou php?

    Merci

  2. #2
    Membre chevronné Avatar de gronono
    Inscrit en
    Novembre 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2003
    Messages : 457
    Par défaut
    Salut,

    Tu as essayé de créer une page php générant le css.
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" href="style.css.php">
    et dans style.css.php tu mets du code php.

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Par défaut
    toujours avec php, tu peux également insérer les paramètres de ta base de données dans les balises <head><style type="text/css">

    cela me semble plus judicieux que de générer une feuille de style style.css.php. En effet, cette feuille créée sera stockée dans ton répertoire et est commune à tout les visiteurs. Donc elle changera chaque fois qu'un visiteur inscrit dans ta base de données sélectionne son style, et ce n'est pas le but recherché. Bien sû, tu peux créer une feuille de style typique pour chaque visteur, de nom visiteur19.css par exemple, mais si ta base de données est importante, tu vas en créer des feuilles de style

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 284
    Par défaut
    heu, le truc de gronono est pareil à ce que tu veux faire avec les balises <style> : en mettant dans le href="" du link une extension .php, ca sera interpreté par le moteur de php. Le fichier .php en question generera du CSS et pas du html, c'est tout.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Par défaut
    pas tout à fait d'accord avec toi : gronono crée une feuille de style, qu'il appelle style.css.php, peu importe. Cette feuille sera créée sur le serveur.
    Quand l'utilisateur 1 se connecte, le script créera la feuille de style en fonction des paramètres de la base de données et l'appellera. Quand l'utilisateur 2 se connecte, le script va écraser la feuille de style existante avec les paramètres de l'utilisateur 2. Lorsque l'utilisateur 1 clique sur une autre page, il aura la feuille de style enregistrée sur le serveur et donc celle de l'utilisateur 2 et ce n'est surement pas l'effet escompté.

    Donc deux solutions :
    • soit créer une feuille de style nominative différente pour chaque utilisateur, par exemple utilisateur1.css.php et utilisateur2.css.php etc, et ton site va accumuler des feuilles de style
    • soit insérer le style comme j'ai indiqué plus haut, lequel style est également dépendant des paramètres de l'utilisateur dans la base de données. Bien sûr, cela oblige de créer des cookies ou de gérer des sessions, mais je ne vois pas d'autre moyen

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    tout à fait possible avaec javascript ... les modifiactions ne seront pas sauvegardées mais elle seront modifiées le temps de la navigation ...

    cf cssrules ... selector etc ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre chevronné Avatar de gronono
    Inscrit en
    Novembre 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2003
    Messages : 457
    Par défaut
    Quand l'utilisateur 1 se connecte, le script créera la feuille de style en fonction des paramètres de la base de données et l'appellera. Quand l'utilisateur 2 se connecte, le script va écraser la feuille de style existante avec les paramètres de l'utilisateur 2. Lorsque l'utilisateur 1 clique sur une autre page, il aura la feuille de style enregistrée sur le serveur et donc celle de l'utilisateur 2 et ce n'est surement pas l'effet escompté.
    Je ne suis pas d'accord, meme pour une page php classique.

    J'ai un seul fichier appelé style.css.php.
    Le contenu sera interpreté à chaque fois que le serveur lit la balise <link ...>
    Mais le serveur n'écrasera pas le fichier. Lorsque le serveur utilise une page php, le contenu du fichier n'est jamais écrasé par le serveur. Le contenu est interpréte par le serveur en mémoire et renvoie le résultat au client.

    Pas besoin de s'embeter avec plusieurs fichiers...

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Par défaut
    je me suis peut-être mal exprimé, mais je persiste : tu as un seul fichier style.css.php, d'accord. Celui-ci est créé lorsque le premier utilisateur se connecte, en cherchant ses paramètres dans la base de données (cela pourrait éventuellement se faire avec des cookies, mais gabychon indique que les paramètres d'affichage sont dans une bdd). Tant qu'il n'y a qu'un seul connecté, pas de problème, d'accord avec toi. Et tout le temps de sa navigation, le contenu de cette feuille de style sera lu par la balise <link ...>, et le serveur n'écrase rien, toujours d'accord avec toi.
    C'est dès qu'un deuxième utilisateur se connecte que survient le problème : le script va créer à nouveau la feuille style.css.php avec les paramètres de ce deuxième utilisateur. Et là, lorsque le premier utilisateur navigue, il va charger la feuillle de style du deuxième.

    Spaceforg : peut-être est-ce possible avec javascript, je ne connais pas javascript. Mais est-ce que javascript transfère les paramètres d'une page à l'autre ?

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    c'est vrai je ne me suis jamais posé la question de savoir si en modifiant un cssrule sur une page le link sur la page suivante conservait ses modifiaction ...
    a priori je dirais non !
    car au chargement de la page il va aller chercher le fichier css (non modifié)
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Membre chevronné Avatar de gronono
    Inscrit en
    Novembre 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2003
    Messages : 457
    Par défaut
    A chaque chargement de page lorsque le navigateur voit style.css.php, il demande au serveur style.css.php qui interprete le fichier style.css.php et renvoi au navigateur un flux de texte (ici du css).

    Donc à chaque demande de page, le serveur réinterprete la feuille de style.
    (donc pas de pb lorsque plusieurs clients se connectent au serveur en même temps).

    C'est comme pour une page php classique.

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Par défaut
    oui la je suis d'accord, si tu la crées à chaque changement de page
    mais c'est dommage de devoir recréer cette feuille de style à chaque chargement d'une nouvelle page, alors que la définir une fois par utilisateur suffit.
    je pense qu'il est plus efficace de la créer le style à la connexion par l'utilisateur et de la transférer de page en page, soit avec un cookie soit avec une session

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/04/2013, 16h26
  2. modifier feuille de style css via Javascript
    Par Haoru dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 23/02/2011, 02h27
  3. Modifier propriétés feuille de style
    Par Jiraiya42 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 12/10/2007, 10h25
  4. Modifier des feuilles de styles en Javascript
    Par navis84 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/08/2006, 10h19
  5. Rattacher une feuille de style a un XML existant
    Par aour dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 08/10/2002, 22h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo