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 :

Centrer horizontalement les img d'un diaporama ?


Sujet :

Centrer un élément en CSS

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 747
    Points : 168
    Points
    168
    Par défaut Centrer horizontalement les img d'un diaporama ?
    Bonjour,

    j'essaie de centrer horizontalement les images d'un diaporama dans un DIV
    Le souci c'est que toutes les images n'ont pas le même format, et que pour l'instant tout est aligné à partir d'un coin supérieur gauche…
    Le code d'origine est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #slideshow-container	{ width:800px; height:600px; position:relative; }
    #slideshow-container img { display:block; position:absolute; top:0; left:0; z-index:3001; }
    J'ai bien essayé ça mais ça ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #slideshow-container	{ width:800px; height:600px; position:relative; }
    #slideshow-container img { display:block; position:absolute; top:0; z-index:3001; text-align: center; }
    Si vous pouviez me filer un petit coup de pouce…

  2. #2
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    bonjour
    essaye ceci : #slideshow-container img {display:block; margin-left:auto; margin-right:auto;}
    (marquer un post résolu si vous êtes satisfait de la réponse )
    ma page launchpad https://launchpad.net/~inizan-yannick
    ma page github : https://github.com/inizan-yannick

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 747
    Points : 168
    Points
    168
    Par défaut
    C'est effectivement centré… mais les images s'empilent les unes sous les autres…

  4. #4
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    fais voir ton code html s'il te plait. je comprends qu'elles soient empilées, mais je voudrais voir le fonctionnement du diaporama
    (marquer un post résolu si vous êtes satisfait de la réponse )
    ma page launchpad https://launchpad.net/~inizan-yannick
    ma page github : https://github.com/inizan-yannick

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 747
    Points : 168
    Points
    168
    Par défaut
    Le code est ici

  6. #6
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    jamais vu mootools en action, ça a l'air sympa
    voici le code css :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #slideshow-container img { display:block; position:absolute; top:0px;left:50%;margin-left:-400px; z-index:3001; text-align: center; }
    Ici il faut que tu utilises les marges négatives. tu positionne ton image à 50% du bord gauche, puis tu décales cette image de la moitié de la largeur de ton image.
    (marquer un post résolu si vous êtes satisfait de la réponse )
    ma page launchpad https://launchpad.net/~inizan-yannick
    ma page github : https://github.com/inizan-yannick

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 747
    Points : 168
    Points
    168
    Par défaut
    oui mais euh... le souci c'est justement que toutes les images n'ont pas le même format…

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonsoir,
    une petit exemple de centrage d'image dans un conteneur
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <!DOCTYPE HTML>
    <html lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Centrage Vertical et horizontal</title>
    <style type="text/css">
    div{
      width:300px;
    /*  height:300px;/* pas obligatoire si contient des éléments en display:inline */
      line-height:300px; /* aligne verticalement des éléments en display:inline */
      border:1px solid #e0e0f0;
      text-align:center;
    }
    img{
    /*  display:block; /* ne pas mettre pour que le line-height du conteneur soit pris en compte */
      vertical-align:middle;
      border:1px solid #000;
    /*  margin: auto;/* ne sert à rien dans ce cas */
    }
    </style>
    </head>
    <body>
    <div>
      <img src="http://web.developpez.com/faq/theme/images/mini_logo_faq_css.gif" alt="">
    </div>
    <div>
      <img src="http://www.developpez.net/template/images/logo.png" alt="">
    </div>
    </body>
    </html>
    reprise du code CSS pour coloration syntaxique et lisibilité des commentaires !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    div{
      width:300px;
    /*  height:300px;/* pas obligatoire si contient des éléments en display:inline */
      line-height:300px; /* aligne verticalement des éléments en display:inline */
      vertical-align:middle;
      border:1px solid #e0e0f0;
      text-align:center;
    }
    img{
    /*  display:block; /* ne pas mettre pour que le line-height du conteneur soit pris en compte */
      border:1px solid #000;
    /*  margin: auto;/* ne sert à rien dans ce cas */
    }

  9. #9
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    donc voilà le css :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #slideshow-container img { display:block; position:absolute;top:0px;left:50%; z-index:1; }
    et tu dois modifier un peu le javascript à cet endroit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    images.each(function(img,i){ 
    				if(i > 0) {
    					img.set('opacity',0);
    				}
    				img.setStyle('margin-left','-'+img.get('width')/2+'px');
    			});
    (marquer un post résolu si vous êtes satisfait de la réponse )
    ma page launchpad https://launchpad.net/~inizan-yannick
    ma page github : https://github.com/inizan-yannick

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 747
    Points : 168
    Points
    168
    Par défaut
    Merci de consacrer du temps à mon petit souci…

    @ NoSmoking
    Oui cela centre bien les images... mais malheureusement elles se chargent les unes au-dessous des autres…

    @rotrevrep
    Hum pas mal tenté ! Mais le javascript ne modifie pas la position horizontale de l'image (elle reste avec le bord gauche au centre de la fenêtre) :
    - img.get('width')/2 ne renvoie rien
    - mais même si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    img.setStyle('margin-left','- 200px');
    ça ne change rien non plus…

  11. #11
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    Citation Envoyé par Mister Paul Voir le message
    Merci de consacrer du temps à mon petit souci…

    @ NoSmoking
    Oui cela centre bien les images... mais malheureusement elles se chargent les unes au-dessous des autres…

    @rotrevrep
    Hum pas mal tenté ! Mais le javascript ne modifie pas la position de l'image :
    - img.get('width')/2 ne renvoie rien
    - mais même si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    img.setStyle('margin-left','- 200px');
    ça ne change rien non plus…
    si tu as fait comme je te l'ai dis, et au bon endroit, ça fonctionne
    et pas d'espace entre le - et le nombre.
    Montre vraiment ton code s'il te plait, que l'on voye où ça cloche.
    (marquer un post résolu si vous êtes satisfait de la réponse )
    ma page launchpad https://launchpad.net/~inizan-yannick
    ma page github : https://github.com/inizan-yannick

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 747
    Points : 168
    Points
    168
    Par défaut
    Effectivement j'avais ajouté un espace dans '- 200px'

    Mais img.get('width') me renvoie NULL

    Mon code :
    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
    window.addEvent('domready',function() {
    	var showDuration = 3000;
    	var container = $('slideshow-container');
    	var images = container.getElements('img');
    	var currentIndex = 0;
    	var interval;
    	/* opacity and fade */
    	images.each(function(img,i){ 
    		if(i > 0) {
    			img.set('opacity',0);
    		}
    		img.setStyle('margin-left','-'+img.get('width')/2+'px');
    	});
    	/* worker */
    	var show = function() {
    		images[currentIndex].fade('out');
    		images[currentIndex = currentIndex < images.length - 1 ? currentIndex+1 : 0].fade('in'); 
    	};
    		interval = show.periodical(showDuration);
    });

  13. #13
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    j'ai omis de te dire que dans le html, tu devais attribuer à tes images les valeurs width et height pour que le script les interprète
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="" width="333" height="400" />
    (marquer un post résolu si vous êtes satisfait de la réponse )
    ma page launchpad https://launchpad.net/~inizan-yannick
    ma page github : https://github.com/inizan-yannick

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 747
    Points : 168
    Points
    168
    Par défaut
    Ah je comprends mieux…

    Avec + de 400 images je sens que je vais générer ça en PHP : je me vois mal aller les chercher à la main une à une…
    Je m'y colle ce soir.

  15. #15
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Citation Envoyé par Mister Paul
    @ NoSmoking
    Oui cela centre bien les images... mais malheureusement elles se chargent les unes au-dessous des autres…
    j'ai du mal à saisir où est le problème attendu que tu fais un slide par FadeIN/OUT. ?

    PS : d'ailleurs il manque un vertical-align : middle; dans le CSS des img, je mets à jour...

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 747
    Points : 168
    Points
    168
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    j'ai du mal à saisir où est le problème attendu que tu fais un slide par FadeIN/OUT. ?

    PS : d'ailleurs il manque un vertical-align : middle; dans le CSS des img, je mets à jour...
    Ben malheureusement ça ne règle par le problème d'empilement…

    Les images apparaissent bien en fade in/out…mais au fur et à mesure les unes au dessous des autres !

  17. #17
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    je viens de percuter il y a fadeOUT ET IN en même temps
    dans ce cas la soluce que j'ai proposée ne tiens pas effectivement.

    Il devient donc bien judicieux dans ce cas de connaitre la largeur, donc au boulot (voir SAUF)

    SAUF...Il y a toujours un sauf
    tu peux mettre tes images dans une DIV en position absolute, reprend l'exemple que j'ai fournie en ajoutant dans le CSS de la div position:absolute pour voir.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    div{
      position:absolute;
      width:300px;
    /*  height:300px;/* pas obligatoire si contient des éléments en display:inline */
      line-height:300px; /* aligne verticalement des éléments en display:inline */
      border:1px solid #e0e0f0;
      text-align:center;
    }

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 747
    Points : 168
    Points
    168
    Par défaut
    Pas mieux malheureusement…

  19. #19
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Citation Envoyé par Mister Paul Voir le message
    Pas mieux malheureusement…
    CHAQUE image doit se trouver dans une DIV, comme dans l'exemple que j'ai mis.

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 747
    Points : 168
    Points
    168
    Par défaut
    Ah… je m'y perds un peu, pardon.
    Dans ma page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	<div id="slideshow-container">
    					<div><img src='xxx1.jpg'></div>
    					<div><img src='xxx2.jpg'></div>
    					(...)  
    	</div>
    Dans ma CSS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #slideshow-container	{ position:absolute;  width:800px; line-height:300px; border:1px dotted Red; text-align:center; 
    #slideshow-container img {  border:1px solid Green; vertical-align:middle;  }
    Pour l'instant ça ne fonctionne pas, mais j'ai dû rater quelque chose…

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Centrer horizontalement et verticalement un site
    Par mickdu90 dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 01/09/2007, 09h24
  2. Centrer automatiquement les tableaux
    Par von Phabor dans le forum Dreamweaver
    Réponses: 9
    Dernier message: 04/05/2007, 15h28
  3. Centrer horizontalement deux div
    Par kaiser59 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 24/02/2007, 14h18
  4. Réponses: 4
    Dernier message: 08/11/2006, 11h56
  5. Centrer verticalement les éléments d'un <form>
    Par Huntress dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/03/2006, 09h46

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