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 :

sprite horizontal à partir d'une image verticale


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut sprite horizontal à partir d'une image verticale
    Bonjour,
    je souhaite réaliser un sprite à partir de l'image jointe (l'original fait 512px x 512px).
    La petite difficulté, c'est que je souhaite "isoler" chaque feu, donc faire 3 images disposées verticalement mais les afficher horizontalement.
    Nom : 1f6a6petit.png
Affichages : 181
Taille : 4,6 Ko
    Voici mon code.
    Code html : 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
        <!doctype html>
        <html lang="fr">
        <head>
            <meta charset="utf-8">
            <title>Titre de la page</title>
            <link rel="stylesheet" href="style.css">
        </head>
        <body>
        <ul class="icone">
            <li class="icone-1"></li>
            <li class="icone-2"></li>
            <li class="icone-3"></li>
     
        </ul>
        </body>
        </html>
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    /* Cibler les éléments <li> appartenant à un élément de classe "icone" */
    .icone li
    {
        width: 512px;
        height: 200px;
        display: inline;/* pour afficher chaque image sur une ligne horizontale */
        background: url("mon_image.png") no-repeat;
    }
     
    .icone-1 { background-position: left top; }
    .icone-2 { background-position: left -20%; }/*les décalages sont mis au pif */
    .icone-3 { background-position: left -40%; }

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut

    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .rotation {
      transform: rotate(90deg)
    }
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Encore page blanche avec
    Code css : 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
    /* Cibler les éléments <li> appartenant à un élément de classe "icone" */
     
    .icone li
    {
        width: 512px;
        height: 200px;
        display: inline; /* pour afficher chaque image sur une ligne horizontale */
        background: url("mon-image.png") no-repeat;
        transform: rotate(90deg);
    }
     
    .icone-1 { background-position: left top; }
    .icone-2 { background-position: left -20%; }/*les décalages sont mis au pif */
    .icone-3 { background-position: left -40%; }
     
    .rotation {
        transform: rotate(90deg)
    }
    Mais peux-tu m'expliquer l'idée car ce que je comprends, c'est que chaque image (qui devrait être alignée horizontalement à l'aide de display: inline;) serait en plus pivotée de 90 degrés. C'est clair que ce n'est pas l'idée, mais c'est ma compréhension...

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 215
    Par défaut
    Bonjour,
    Citation Envoyé par laurentSc
    Encore page blanche
    ! Important : les éléments inline ignorent les propriétés width et height.

    Il te faut donc au moins mettre tes éléments <li> en inline-block ou passer ton élément en display:flex, tu devrais voir apparaître des choses.

    Concernant l'utilisation de background-position, tu peux simplement utiliser les mots clé top, center, bottom attendu que tu as trois cas.
    /*les décalages sont mis au pif */
    C'est justement le soucis, lorsque l'on utilise des valeurs en pourcentage, celles-ci sont relatives au conteneur, donc les valeurs négatives « poussent » le background vers le bas.

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Tes remarques me semblent bonnes.

    Mon nouveau CSS :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    /* Cibler les éléments <li> appartenant à un élément de classe "icone" */
    .icone li
    {
        width: 512px;
        height: 200px;
        display: inline-flex;/* pour afficher chaque image sur une ligne horizontale */
        background: url("mon-image.png") no-repeat;
    }
     
    .icone-1 { background-position: center top; } /* center à l'horizontal pour être plus sûr de voir qqchose */
    .icone-2 { background-position: center center; }
    .icone-3 { background-position: center bottom; }
    encore page blanche...
    Pour le display, j'ai aussi essayé inline-block et flex.

  6. #6
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Si tu as un exemple fonctionnel sous la main, il me paraît bien de m'en inspirer...(évidemment, j'ai cherché sur la toile mais rien trouvé).

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

Discussions similaires

  1. Lien internet a partir d'une image
    Par Furlaz dans le forum C++Builder
    Réponses: 28
    Dernier message: 15/06/2006, 13h57
  2. [C#] custom control à partir d'une image / alpha blending
    Par Cyberwan dans le forum Windows Forms
    Réponses: 5
    Dernier message: 13/11/2005, 21h59
  3. appel de fonction à partir d'une image activer/desactiver
    Par philippe123 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/08/2005, 16h26
  4. Réponses: 3
    Dernier message: 27/01/2005, 10h53
  5. Repetition d'une image verticalement
    Par black is beautiful dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 23/12/2004, 23h08

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