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

Langage PHP Discussion :

CSS Dynamique sous PHP. echo?


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 155
    Points : 94
    Points
    94
    Par défaut CSS Dynamique sous PHP. echo?
    Bonjour,
    j'aimerais savoir si j'ai un moyen de créer des classes sans perturber l'affichage et le style actuel.
    En effet, sous le framework dojo() je souhaite créer dynamiquement des classes css (là j'ai mis un exemple, mais le but c'est d'en faire avec des boucles)
    et il y a un effet indésirable qui se produit par rapport à mon affichage actuel... dès que je mets les echos, tout se déplace vers le bas... y a t'il moyen que ca n'arrive pas? de le faire "discretement" sans perturber l'affichage? C'est pas le role de la petite * qu'on met en début d'echo?
    merci d'avance.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function build_page()
    {
            function buildClasses()
       {
             echo '<style type="text/css">';
             echo '.pbreducecard   { width:99px; height:33px;background-size:840px; background-position: 0px    -315px;  }';
             echo '</style>';
       }
     buildClasses();
    [... des tas de choses...]
    }

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est pas le role de la petite * qu'on met en début d'echo?
    Tu mets une étoile devant tes echo toi ?

    dès que je mets les echos, tout se déplace vers le bas
    Si ton affichage "à la main" et ton affichage construit en PHP n'ont pas le même rendu, c'est qu'ils le HTML/CSS dans les deux n'est pas identique.
    Si tu compares la source HTML dans les deux cas, tu trouveras le problème.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 155
    Points : 94
    Points
    94
    Par défaut
    merci pour ta réponse...
    concernant l'echo, j'ai vu quelquechose du genre echo '* ' une fois... et cette étoile n'avait pas pour vocation d'etre affichée.

    Concernant les fichier HTML... probablement, mais je n'en ai malheureusement pas la maitrise... je développe sur un site qui met a disposition certains fichiers modifiables, mais tout le code n'est pas visible, c'est sous dojo également...

    Si c'est le cas, y a t'il moyen tout de même d'éviter de tout décaler (éventuellement avec autrechose que echo?).
    ai-je déjà un moyen simple d'afficher la source HTML en php (une fonction qui la récupère?)
    et même question pour le javascript (une fonction qui récupère la source)... ?
    il n'y a pas d'indication dans le fichier... j'ai une génération automatique des fichiers en nommant mon projet patati.
    pour le js, j'ai le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    define([
        "dojo","dojo/_base/declare",
        "ebg/core/gamegui",
        "ebg/counter"
    ],
    function (dojo, declare) {
        return declare("bgagame.patati", ebg.core.gamegui, {
            constructor: function(){
                console.log('patati constructor');
    pour le php ca débute par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
      require_once( APP_BASE_PATH."view/common/game.view.php" );
     
      class view_patati_patati extends game_view
      {
    voilà, au cas où...

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu n'as pas compris : PHP ne traite aucun aspect de mise en page ; echo ne fait qu'envoyer ce que tu lui donne.
    Donc s'il y a un problème de mise en page, il est dans ton code HTML final, pas dans le fonctionnement de PHP.

    Tu dois comparer le HTML obtenu maintenant avec celui que tu obtenais avant (dans ton navigateur clique droit, afficher la source). Il y a forcement une différence entre les deux.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 155
    Points : 94
    Points
    94
    Par défaut
    Mais il y a bien un moyen de traiter la création de classe sous php tout de même???

    sinon, effectivement,en comparant, le code s'insère tout au début du code de la page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function buildClasses()
       	{
            	echo '<style type="text/css">';
            	echo '.card2  {background-color: blu;  }';
            	echo '</style>';
       	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <style type="text/css">.card2  {background-color: blu;  }</style><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:og="http://ogp.me/ns#"
          xmlns:fb="http://www.facebook.com/2008/fbml"
          xml:lang="fr" lang="fr">
    <head>
    [...]
    CE simple truc rajouté devant crée une déformation dans la hauteur de tout le reste...
    Peut-être que je devrais remettre tout ce qui est devant le <HEAD> .... je vais tenter.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 155
    Points : 94
    Points
    94
    Par défaut
    CA Y EST!!!! ARF JE SUIS CONTENT....
    Suffit seulement de rajouter en fait le doctype!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function buildClasses()
       	{
    		echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
            	echo '<style type="text/css">';
            	echo '.card2  {background-color: blue;  }';
            	echo '</style>';
       	}
    VOILA UNE SOLUTION POUR CREER DES CLASSES EN PHP

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Euh... tu es au courant que le DocType doit être présent une seule fois dans toute la page HTML ?
    Alors, effectivement il doit être avant ta classe CSS, là, j'ai comme l'impression qu'il va être avant ta classe CSS et une 2e fois avant le reste du HTML . Et si tu mets 2 classes CSS, il va y être 2 fois, et ainsi de suite...

    Ce qu'il faudrait faire pour que ce soit propre, c'est ajouter tes classes CSS à l'intérieur du HEAD.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 155
    Points : 94
    Points
    94
    Par défaut
    merci pour ta réponse,
    Je n'ai pas l'accès direct au HEAD....
    Dans ce cas, il faudrait que je crée une routine qui scrute la sortie courante pour y trouver le <HEAD> ?
    et placer une insertion au bon endroit?
    Ca me parait compliqué et je ne vois pas comment faire à partir du Php ni du js...
    Ou y a t'il une fonction qui prévoit déjà cela?

  9. #9
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    ah... Tu utilises dans un framework ou un CSS, quelque chose qui génère la page tout seul avec ton code à toi au milieu ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. CSS dynamiques avec PHP
    Par BRUNO71 dans le forum Langage
    Réponses: 2
    Dernier message: 15/10/2012, 13h25
  2. Un CSS dynamique en PHP ne fonctionnant pas
    Par Tibimac dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 24/05/2010, 18h04
  3. [Article] Des feuilles de style CSS dynamiques avec PHP
    Par Bisûnûrs dans le forum Publications (X)HTML et CSS
    Réponses: 3
    Dernier message: 05/01/2009, 21h48
  4. Des feuilles de style CSS dynamiques avec PHP
    Par Bisûnûrs dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 05/01/2009, 21h48

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