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 :

Duplication code css, comment y remédier ?


Sujet :

CSS

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 120
    Par défaut Duplication code css, comment y remédier ?
    Bonjour,

    Dans une page html je charge dans des block p des images en fond, ces images sont redimensionnées et positonnée.
    Le problème vient du fait que j'ai plusieur images et que pour chacune des images je duplique du code, seul la ligne indiquant le chemin de l'image source change.

    Exemple si j'ai trois images :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <style type="text/css">
    <!--
    .vignette1 {
     height: 150px;
     width: 150px;
     background-color: #000000;
     background-image:    url(../../../../images/gal/peinture/science-fiction/ultramar/vgn/ultra_marneus_1.jpg);
     background-repeat: no-repeat;
     background-attachment: scroll;
     background-position: center center;
    }
    .vignette2 {
     height: 150px;
     width: 150px;
     background-color: #000000;
     background-image:    url(../../../../images/gal/peinture/science-fiction/ultramar/vgn/ultra_marneus_2.jpg);
     background-repeat: no-repeat;
     background-attachment: scroll;
     background-position: center center;
    }
    .vignette3 {
     height: 150px;
     width: 150px;
     background-color: #000000;
     background-image:    url(../../../../images/gal/peinture/science-fiction/ultramar/vgn/ultra_serviteur1.jpg);
     background-repeat: no-repeat;
     background-attachment: scroll;
     background-position: center center;
    }
     
    -->
    </style>
    L'image est insérée dans le code html de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ...
     
    <p class="vignette1"><a href="javascript:PopupImage('../../../../images/gal/peinture/science-fiction/ultramar/
    ultra_marneus_1.jpg')"><img src="../../../../pngcomp/
    scrolloff.png" border="0" onmouseover="this.src='../../../../pngcomp/scrollon.png'" onmouseout="this.src='../../../../pngcomp/scrolloff.png'" /></a></a></p>
     
    ... 
     
    <p class="vignette2"><a href="javascript:PopupImage('../../../../images/gal/peinture/science-fiction/ultramar/ultra_marneus_2.jpg')"><img src="../../../../pngcomp/scrolloff.png" border="0" onmouseover="this.src='../../../../pngcomp/scrollon.png'" onmouseout="this.src='../../../../pngcomp/scrolloff.png'" /></a></span></a></p>
    En fait le principe c'est que la css crée une image de fond. Par defaut un script javascript applique une image par dessus pour donner un effet de cadre, et lorsqu'on survol cette image, le code javascript fait un effet de rollover.Lorsqu'on clique sur l'image, pop up de l'image ;-)

    Donc le principe est tout bête, mais je suis sur que le code peut être optimisé. Mais je sais pas trop comment faire pour factoriser du codde css moi :-(

  2. #2
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Salut,

    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
    <style type="text/css">
    <!--
    .vignette {
     background-repeat: no-repeat;
     background-attachment: scroll;
     background-position: center center;
     background-repeat: no-repeat;
     background-attachment: scroll;
     background-position: center center; 
    }
    .vignette1 {
     background-image:    url(../../../../images/gal/peinture/science-fiction/ultramar/vgn/ultra_marneus_1.jpg);
    }
    .vignette2 {
     background-image:    url(../../../../images/gal/peinture/science-fiction/ultramar/vgn/ultra_marneus_2.jpg);
    }
    .vignette3 {
     background-image:    url(../../../../images/gal/peinture/science-fiction/ultramar/vgn/ultra_serviteur1.jpg);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p class="vignette vignette1">
    Tu peux aussi éventuellement passer par des ID si les <p> sont uniques.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 120
    Par défaut
    Merci pour cette réponse,

    J'en profite pour aller plus loin

    Est il possible de passer des variables en code css ?

    Je m'explique, dans la partie html on a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div style="text-align: left;"><p class="vignette vignette1"></div>
    A la place de vignette1, puis-je avoir un bout de code ( php ? javascript ? ...) qui permettrait d'assigner le code css :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .vignette1 {
     background-image:    url(../../../../images/gal/peinture/science-fiction/ultramar/vgn/ultra_marneus_1.jpg);
    }
    De facon a ce que la varibale soit assignée à background-image ?


    Ainsi pas du tout de duplication de code.

  4. #4
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 273
    Par défaut
    dans ton html/php tu peux faire par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $n = ...; //numero vignette
    <p class="vignette vignette<?php echo $n; ?>">...</p>
    oui

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/03/2010, 17h59
  2. CSS comment puis-je modifier mon code pr avoir un bord blanc
    Par pierrot10 dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 30/09/2005, 20h19
  3. [CSS]Comment etirer une background selon la fenêtre
    Par Drannor dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 20/05/2005, 14h06
  4. [CSS] Comment utiliser text-shadow?
    Par Hell dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 17/03/2005, 08h49
  5. Programme figer ? comment y remédier
    Par jamesb dans le forum C++Builder
    Réponses: 6
    Dernier message: 25/11/2004, 20h58

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