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

Mise en page CSS Discussion :

Enlever des balises styles


Sujet :

CSS

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 29
    Par défaut Enlever des balises styles
    Bonjour,

    Je dois externaliser du code dans un fichier css, js.... Le problème c'est que dans les balises on a du code contenant des variables dynamiques, du style :
    ${widthlarge}

    Merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $text = "<STYLE>
        #GridDescWrap {	padding: 0 0 2px; position: relative; text-align: left; }
        .GridDesc { visibility: hidden; color:#666; width: ${widthlarge}px; position: absolute; left: 4px; top:-1px }
        .opaque { filter: alpha(opacity=100); opacity: 1; moz-opacity: 1 }
        .notOpaque { filter: alpha(opacity=50); opacity: .5; moz-opacity: .5 }          
        .thumbDiv { width:${imgSpacing}px;";

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Tu peux toujours faire une feuille de style dynamique en PHP.

    Renomme ton fichier .css en .css.php, mets ce code tout en haut :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    header( 'content-type: text/css' );
    ?>
    Et tu peux ensuite utiliser des variables PHP à l'intérieur (en les passant soit en GET soit en SESSION par exemple).

  3. #3
    Membre Expert Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Par défaut
    Le seul inconvénient du code PHP à l'intérieur d'une CSS est qu'il fait perdre le mécanisme de mise en cache par le navigateur de la CSS.
    Donc penser à dissocier si possible les style dynamique de toutes les règles de style non dynamiques.

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Sauf si on rajoute une ligne dans le header PHP :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    header( 'HTTP/1.0 304 Not Modified' );


  5. #5
    Membre Expert Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Sauf si on rajoute une ligne dans le header PHP :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    header( 'HTTP/1.0 304 Not Modified' );
    Euh pas compris ta blague Bisûnûrs, d'ailleurs je ne connais pas l'erreur 304.

  6. #6
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Hum, ce n'était pas une blague.
    Le code HTTP 304 d'Apache indique au navigateur que le contenu n'a pas été modifié, donc il va chercher le contenu dans son cache.

    http://www.w3.org/Protocols/rfc2616/...html#sec10.3.5

  7. #7
    Membre Expert Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Hum, ce n'était pas une blague.
    Le code HTTP 304 d'Apache indique au navigateur que le contenu n'a pas été modifié, donc il va chercher le contenu dans son cache.

    http://www.w3.org/Protocols/rfc2616/...html#sec10.3.5
    Ah je pensais pas qu'on pouvais forcer la mise en cache d'une CSS comprenant du code PHP.
    C'est un peu l'équivalent du meta cache-control non?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 29
    Par défaut Merci
    Merci beaucoup je vais essayer cela demain matin et oui, pas le même fuseau horaire que vous ...

  9. #9
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Citation Envoyé par Erwan31 Voir le message
    C'est un peu l'équivalent du meta cache-control non?
    C'est un peu plus radical que le cache-control, oui, qu'on peut tout à fait utiliser :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    header( 'cache-control: max-age=3600, must-revalidate' );

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 29
    Par défaut D'accord
    Donc j'ai mon fichier qui commence comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    header( 'content-type: text/css' );
    header( 'HTTP/1.0 304 Not Modified' );
    ?>
    Mais après je crée des classes css pour externaliser mon code ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $text = "<STYLE>
        #GridDescWrap {	padding: 0 0 2px; position: relative; text-align: left; }
        .GridDesc { visibility: hidden; color:#666; width: ${widthlarge}px; position: absolute; left: 4px; top:-1px }
        .opaque { filter: alpha(opacity=100); opacity: 1; moz-opacity: 1 }
        .notOpaque { filter: alpha(opacity=50); opacity: .5; moz-opacity: .5 }          
        .thumbDiv { width:${imgSpacing}px;";
    Pouvez vous me donner un exemple sur l'externalisation de cette balise <STYLE>

    Merci.

  11. #11
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Salut,

    Pour externaliser un CSS il suffit de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <style type="text/css">
    ...
     
    </style>
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link href="nom_du_fichier_css_externe" type="text/css" rel="stylesheet">
    En général "nom_du_fichier_css_externe" est le fichier texte dans lequel on aura recopié les déclaration CSS que l'on désire externaliser.
    Dans ton cas ce sera un appel PHP qui te renvoie le contenu de $text (sans "<STYLE>" et "</STYLE>")

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 29
    Par défaut Donc cela donne
    Voila ce que j'obtiens pour le moment dans mon fichier *.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <!-- Modifié par moi -->
    <link href="externalisation.css.php" type="text/css" rel="stylesheet">
    <!-- Fin de modification -->
     
    <?php // no direct access
    defined('_JEXEC') or die('Restricted access'); 
     
    ......
    ......
     
    $imgSpacing = $widththumb + 4;
    $tableWidth = $imgSpacing + $widthlarge;
     
    $dynaText = "";
    $text = "<STYLE>
        #GridDescWrap {	padding: 0 0 2px; position: relative; text-align: left; }
        .GridDesc { visibility: hidden; color:#666; width: ${widthlarge}px; position: absolute; left: 4px; top:-1px }
        .opaque { filter: alpha(opacity=100); opacity: 1; moz-opacity: 1 }
        .notOpaque { filter: alpha(opacity=50); opacity: .5; moz-opacity: .5 }          
        .thumbDiv { width:${imgSpacing}px;";
     
    .....
    .....
    Et cela dons mon fichier *.css.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    header( 'content-type: text/css' );
    header( 'HTTP/1.0 304 Not Modified' );
    ?>
     
    #GridDescWrap {	padding: 0 0 2px; position: relative; text-align: left; }
    .opaque { filter: alpha(opacity=100); opacity: 1; moz-opacity: 1 }
    .notOpaque { filter: alpha(opacity=50); opacity: .5; moz-opacity: .5 }
    Ce que je comprend pas c'est la syntaxe d'externalisation car mes variables php sont déclarées dans le *.php . Ainsi comment tu fais après une fois dans le *.php pour lui dire $text = (ce qui va bien)


    Désolé je découvre le php, d'habitude je suis plus orienté vers Java, C++

  13. #13
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Citation Envoyé par Pingouin22 Voir le message
    Ce que je comprend pas c'est la syntaxe d'externalisation car mes variables php sont déclarées dans le *.php . Ainsi que comment tu fais après une fois dans le *.php pour lui dire $text = (ce qui va bien)


    Désolé je découvre le php, d'habitude je suis plus orienté vers Java, C++
    Moi je ne sais pas. Pour ça pose la question sur le forum PHP

  14. #14
    Membre Expert Avatar de HiRoN
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 035
    Par défaut
    Ainsi que comment tu fais après une fois dans le *.php pour lui dire $text = (ce qui va bien)
    Un echo $text; ?

    (Ou alors idem, je vois pas ou mal compris... )

    Que veux-tu dire par : "Pour lui dire..." ?
    Pensez à utiliser les ressources disponibles en Dev. Web :
    (x)HTML : Cours (X)HTML / FAQ (X)HTML
    CSS : Cours CSS / FAQ CSS / Galerie CSS
    Javascript : Cours / FAQ / Sources
    Mon site : Développeur Web Freelance

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 29
    Par défaut Voiloute
    Ce que je veux dire c'est que dans mon fichier *.css.php l'externalisation du code qui est entre <Style> et </Style>. Mais comment je fais par la suite après dans le php ci dessous après le $text = .... Faut bien qu'ici j'appelle le contenu de l'autre fichier sachant qu'il y a plusieurs classes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $text = "<STYLE>
        #GridDescWrap {	padding: 0 0 2px; position: relative; text-align: left; }
        .GridDesc { visibility: hidden; color:#666; width: ${widthlarge}px; position: absolute; left: 4px; top:-1px }
        .opaque { filter: alpha(opacity=100); opacity: 1; moz-opacity: 1 }
        .notOpaque { filter: alpha(opacity=50); opacity: .5; moz-opacity: .5 }          
        .thumbDiv { width:${imgSpacing}px;";

  16. #16
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Je répète que ce n'est pas à priori le bon forum pour demander comment propager des variables d'un appel PHP à un autre.

    Cependant, si j'ai bien compris "la pile d'appels" de ton code tu as un fichier qui contient des variables qui ont des valeurs ...
    Dans ce fichier (qui te génère ton HTML) tu veux créer une ligne qui fait appel à ton fichier ".css.php" ...
    Cet appel est une requête http donc si tu n'as pas moyen de garder tes variables en mémoire en session (par exemple) pourquoi ne pas simplement les passer en paramètre à ton fichier ".css.php"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link href="externalisation.css.php?param1=valeur1&param2=valeur2" type="text/css" rel="stylesheet">

Discussions similaires

  1. [WD-2007] Remplacer les styles Word par des balises plein texte
    Par CoCiv dans le forum VBA Word
    Réponses: 2
    Dernier message: 29/03/2009, 01h39
  2. [CKEditor] Modifier le style des balises par défaut
    Par MartiW dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 01/06/2008, 18h41
  3. XLS - Nom des balise
    Par lakrimo dans le forum XMLRAD
    Réponses: 2
    Dernier message: 05/02/2004, 11h12
  4. Position des balises H2 ou comment les numéroter
    Par haypo dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 12/07/2003, 19h24
  5. Placement des balises avec DTD
    Par Keul125 dans le forum Valider
    Réponses: 4
    Dernier message: 28/05/2003, 12h08

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