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 :

Centrage horizontal pour ma lightbox


Sujet :

Centrer un élément en CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 273
    Par défaut Centrage horizontal pour ma lightbox
    Bonsoir

    Mon site contient de nombreuses images qui sont affichées en petit, un clique permet de les agrandir. Pour cela j'utilise une lightbox. Il y a très peu de codes mais malheureusement je n'y arrive quand même pas.
    Tout d'abord, voici ce que ça donne avec le code actuel :

    Nom : a.jpg
Affichages : 185
Taille : 300,6 Ko

    Malheureusement je pense que c'est pas centré sur tous les PC, de plus avec les images de taille différente ça fait moche :

    Nom : b.jpg
Affichages : 178
Taille : 133,4 Ko

    J'ai un peu modifié le code mais je suis obligé de jouer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    width: 600 px; 
    margin-left: -315px;
    afin de centrer le tout, ce qui n'est vraiment pas pratique car ce n'est pas automatique en fonction de la taille de l'image. Voici ce que j'obtiens :

    Nom : c.jpg
Affichages : 193
Taille : 137,2 Ko

    Je souhaite donc que ma lightbox soit centrée horizontalement et verticalement et que ça s'adapte automatiquement à la taille de l'image. J'ai cherché plusieurs heures mais je suis vraiment perdu.

    Voici le CSS pour ce qu'on voit sur la dernière image :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    #shadowing{
    	display: none;
    	position: fixed;
    	top: 0%;
    	left: 0%;
    	width: 100%;
    	height: 100%;
    	background-color: #CCA;
    	z-index:10000;
    	opacity:0.6;
    	filter: alpha(opacity=50);
    }
     
    #box { 
    	display: none;
    	position: fixed;
    	height:auto;
    	max-height:auto !important;	
    	margin-left: auto;
        margin-right: auto;
    	text-align: center;
    	border: 2px solid black;
    	background-color: white;
    	z-index:10000;
    	background-color: #8E8E8E;
    	top: 50%;
        left: 50%;
        margin: -166px 0 0 -166px;
    	width: 600 px; 
    	margin-left: -315px;
    }
     
     
    #boxcontent{ 
    	left:0;
    	right:0;
    	bottom:0;
    	margin:0; 
    	padding: 8px;
    	overflow: auto;
    	width:100%;
    	height:100%;
    	z-index: 10000;
    }
     
    #boxtitle{ 
    	left:0%;
    	width:100%;
    	height:20px;
    	padding:0;
    	margin:auto;
    	color:black;
    	text-align:center;
    	z-index: 10000;
    }
    Sur ma page html j'ai également mis ces lignes :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="shadowing"></div>
    <div id="box">
        <div id="boxcontent"  onclick="closebox()">  </div> 
        <div id="boxtitle"> Titre </div>
    </div>

    Et enfin le JavaScript qui permet entre autre de placer le texte de mon choix sous l'image :

    Code javascript : 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
    function openbox(url,titre){ 
    	var box = document.getElementById('box'); 
    	document.getElementById('shadowing').style.display='block';
     
    	var title = document.getElementById('boxtitle');
    	title.innerHTML = titre;
     
    	var content = document.getElementById('boxcontent');
    	content.style.padding="0";
     
    	content.innerHTML = "<img src=" + url + " />";
     
    	box.style.display='block';	
    }
     
     
    function closebox(){
    	document.getElementById('box').style.display='none';
    	document.getElementById('shadowing').style.display='none';
    }

    Et j'intègre le tout à ma page avec

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <center><img src="screens/52_reduit.jpg" onclick="openbox('screens/52_reelle.jpg','27 septembre 2014');" alt="mixmaster"/></center>

    Le problème est uniquement lié au CCS mais bon je vous le donne quand même.

    Auriez vous une idée ?

    Une piste ?

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de rodolphebrd
    Homme Profil pro
    Indépendant
    Inscrit en
    Novembre 2012
    Messages
    2 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Indépendant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 336
    Par défaut
    Bonjour,

    on peut voir la page en ligne ?

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    si tu gères cela en javascript, il te faut attendre que l'image soit chargé pour pouvoir redimensionner son conteneur.

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 273
    Par défaut
    Bonsoir

    Désolé j'avais oublié le plus important.

    Voilà : http://fan-de-mixmaster.legtux.org/s...hots_page1.php
    Là c'est le CSS qui pose problème (voir mes copie d'écran dans le premier message) lorsque l'image est plus petite.

    Bonne nuit

  5. #5
    Membre Expert
    Avatar de rodolphebrd
    Homme Profil pro
    Indépendant
    Inscrit en
    Novembre 2012
    Messages
    2 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Indépendant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 336
    Par défaut
    J'appliquerais le style au DIV suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #boxcontent{
       position: fixed;
       left:0;
       right:0;
       margin:0 auto; 
       z-index: 10000;
       width: 810px;
    }
    Je supprimerais tous les styles du DIV #box en ne laissant que le border.

    Après il serait intéressant d'enlever toutes les déclarations qui ne servent à rien et de comprendre ce que tu écris. Et de commencer par le commencement c'est à dire les tutos du forum : Les meilleurs cours et tutoriels CSS

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 273
    Par défaut
    Bonjour

    J'ai fais ce que vous avez proposé mais maintenant il y a plusieurs problèmes :
    - Quand j'actualise la page je vois "Titre" en haut ainsi qu'un cadre au contour noir
    - Quand je clique sur une image elle est complètement en bas ce qui empêche de voir le titre qui est marqué dessous
    - Quand je clique sur une petite image (il y en a 4 sur la page) elle n'est pas du tout centrée.

    Effectivement, je ne maîtrise pas bien le CSS mais c'est quand même compliqué de mettre les bons paramètres dans chaque div afin que chaque image qu'importe sa taille s'affiche correctement au milieu avec le titre dessous et cela qu'importe la taille de l'écran du PC.

    Bonne soirée

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

Discussions similaires

  1. Centrage horizontal avec firefox
    Par Starneo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 24/04/2009, 12h39
  2. Centrage horizontal et position absolute
    Par SpaceFrog dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 06/04/2009, 11h18
  3. Centrage horizontal et vertical dans tous les onglets
    Par bibvba dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/04/2008, 09h30
  4. [CSS] Problème de centrage horizontal
    Par BnA dans le forum Mise en page CSS
    Réponses: 11
    Dernier message: 11/08/2006, 12h03
  5. [XSL-FO]centrage horizontal
    Par kroky dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 01/03/2006, 15h52

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