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 de plusieurs blocks flottants [CSS 2]


Sujet :

Centrer un élément en CSS

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 47
    Par défaut Centrage de plusieurs blocks flottants
    Bonjour,

    J'ai une div qui contient des blocks qui flottent. J'aimerais pouvoir centrer tous les blocks de manière automatique et je n'y arrive pas.

    Le HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <div id="cadre">
    	<p>Salut la compagnie !</p>
    	<p>Encore un mot complètement nouveau</p>
    	<p>Plouf</p>
    </div>
    </html>
    Le CSS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    body {
    font-size: 12px;
    font-family:verdana,arial,sans-serif;}
     
    div#cadre {
    width:600px; 
    height:600px;}
     
    p {
    font-size: 1em;
    float:left;
    padding:.5em; 
    margin:auto;}
    Je ne sais pas trop par quel bout prendre le problème. Pour le moment, j'essaie de mettre une marge auto à mes <p>, mais ça ne marche pas.

    Avez vous des suggestions ?

    Merci

    PS : j'ajoute un schéma pour que tout soit plus clair
    Images attachées Images attachées  

  2. #2
    Rédacteur

    Homme Profil pro
    Responsable de projet
    Inscrit en
    Mai 2009
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de projet
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 634
    Par défaut
    Salut, utilise le margin pour centrer ton <div id="cadre"> :

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    div#cadre {
    	width:600px; 
    	height:600px;
    	margin:0px auto;
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 47
    Par défaut
    Bonjour,

    Cela centre la div#cadre dans la page, ce n'est pas ce que je recherche.

    J'ai ajouté un schéma pour mieux expliquer.

  4. #4
    Rédacteur

    Homme Profil pro
    Responsable de projet
    Inscrit en
    Mai 2009
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de projet
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 634
    Par défaut
    oui je viens de voir cela

    et bien essaye ceci :
    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
     
    div#cadre {
    	width:600px; 
    	height:600px;
    	margin:0px auto;
    	text-align:center;
    }
     
    p {
    	font-size: 1em;
    	display:inline-block;
    	white-space: nowrap;
    	margin:10px;
    }

    utilise un "white-space: nowrap;" afin de ne pas permettre le retour à la ligne.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 47
    Par défaut
    Yes, ça marche !

    Par contre, même si je mets margin:0px pour les <p>, j'observe des petites marges entre les <p> d'une même ligne. Ca ne me dérange pas, mais j'aimerais comprendre d'où ça vient. (cf capture d'écran).

    Autre chose, ça ne marche pas très bien dans IE6 : tous les <p> sont remis à la ligne.
    Images attachées Images attachées   

  6. #6
    Rédacteur

    Homme Profil pro
    Responsable de projet
    Inscrit en
    Mai 2009
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de projet
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 634
    Par défaut
    En fait la propriété display:inline-block; est sensible au retour à la ligne de ta structure html, donc tu as 2 façons de faire:
    - soit tu mets tous tes <p> sur la même ligne:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div id="cadre"><p>Salut la compagnie !</p><p>Encore un mot complètement nouveau</p><p>Plouf</p><p>Encore un mot complètement nouveau</p><p>Encore un mot complètement nouveau</p><p>Encore un mot complètement nouveau</p></div>
    -soit tu rajoutes des commentaires:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <div id="cadre">
    	<p>Salut la compagnie !</p><!-- 
    	 --><p>Encore un mot complètement nouveau</p><!-- 
    	 --><p>Plouf</p><!-- 
    	 --><p>Encore un mot complètement nouveau</p><!-- 
    	 --><p>Encore un mot complètement nouveau</p><!-- 
    	 --><p>Encore un mot complètement nouveau</p>
    </div>

    Enfin, il faut savoir que inline-block n'est pas compatible sous IE6

  7. #7
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Par défaut
    Citation Envoyé par ornitho13 Voir le message
    Enfin, il faut savoir que inline-block n'est pas compatible sous IE6
    IE6 et 7 (uniquement sur les éléments de rendu block).
    Étant donné que display:inline-block confère le layout, tu peux émuler ce comportement en déclarant un display:inline aux éléments P, entre commentaires conditionnels.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 47
    Par défaut
    Merci pour vos réponses.

    Je n'ai pas compris ce que Macmillenium voulait dire, mais après des recherches, j'ai trouvé que IE6 a un comportement différent s'il s'agit de <p> ou de <a>.

    Dans mon ca, si je remplace mes <p> par des <a>, tout marche bien pour Firefox et IE6.

    Finalement, ma problématique était une problématique de nuage de tags.

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

Discussions similaires

  1. [Débutant] Centrage d'un block div
    Par mavina dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 31/03/2010, 03h31
  2. [forms] Data Block Lov Plusieurs tables jointure
    Par loupin dans le forum Forms
    Réponses: 5
    Dernier message: 13/09/2006, 21h39
  3. Réponses: 13
    Dernier message: 16/08/2006, 09h06
  4. [XSL:FO][FOP]Un block-container sur plusieurs pages ?
    Par lebechen dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 29/06/2006, 23h29
  5. [forms]block basé sur plusieurs vues
    Par ramaro dans le forum Forms
    Réponses: 1
    Dernier message: 14/04/2006, 12h05

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