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 :

Center un bloc verticalement sans connaitre sa taille


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 4
    Par défaut Center un bloc verticalement sans connaitre sa taille
    Bonjour,

    Je cherche à centrer un bloc dans div que se soit horizontalement et verticalement, alors que je ne connais pas sa taille.

    Voici la version simplifiée de ma page. Je veux que #bloc soit centré dans #container.
    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
     
    <!DOCTYPE HTML> 
    <html> 
        <head> 
    	<meta charset="utf-8" />
            <title></title>
     
    	<style type="text/css" media="screen">
     
    	    #wrapper {
    		position: absolute;
    		top: 0;
    		left: 0;
    		bottom: 0;
    		right: 0;
    		background: #222;
    	    }
     
    	    #container {
    		position: absolute;
    		top: 50px;
    		right: 0;
    		bottom:0;
    		left: 200px;
    		background: #e3e3e3;
    		text-align: center;
    	    }
     
    	    #bloc {
    		margin: auto auto;
    		background: yellowgreen;
    		padding: 50px;
    		display: inline-block;
    	    }
    	</style>
        </head>
        <body>
    	<div id="wrapper">
    		<div id="container">
    			<div id="bloc">
    			    BLOC
    			</div>
    		</div>
    	</div>
     
        </body>
    </html>
    Merci de votre aide

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    L'utilisation des positions absolues est déjà contestable ..

    Pour ton problème, tu dois soit passer par un tableau de mise en forme pour pouvoir être cross-browser, soit utiliser la propriété display:table-cell couplé de vertical-align:middle sur ton container, en ayant bien en tête que ça ne fonctionnera pas sur les anciennes version de IE.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 4
    Par défaut
    Merci de ta réponse.

    J'utilise la position absolute, car j'utilise toute la taille de l'écran et c'est la méthode la plus simple pour le faire.

    J'ai essayé le table-cell, cell,et vertical align mais ça ne donne pas du tout le résultat voulu.

    D'autre part le site est en html5/css3 donc je me moque de la méthode

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Le display:table-cell ne semble pas fonctionner avec le position:absolute. Malheureusement en CSS il n'y a pas de méthode miracle pour faire ce que tu veux, si tu ne connais pas la hauteur de ton contenu. Il ne reste plus que le tableau ou le centrage en Javascript.
    Ou peut-être une méthode sortie de derrière les fagots dont je n'aurais pas connaissance, ça aussi c'est possible.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 4
    Par défaut
    C'est bien que qu'il me semblait. Je vais passer par du jquery

    Merci de ton aide

  6. #6
    Membre Expert
    Avatar de Candygirl
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Par défaut
    Hello,

    Tu peux essayer de jouer en dissociant le position absolute du display table:
    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
     
    		body {
    			background: #222;
    			position:absolute;
    			top: 50px;
    			left: 200px;
    			bottom: 0;
    			right: 0;
    			padding:0;margin:0;			
    		}
     
    	    #wrapper {
    			width:100%;
    			height:100%;
    			display:table;
    	    }
     
    	    #container {
    			background: #e3e3e3;
    			text-align: center;
    			display:table-cell;
    			vertical-align:middle;		
    	    }
     
    	    #bloc {
    			margin:0 auto;
    			background: yellowgreen;
    			padding: 50px;
    			display: inline-block;
    	    }
    Les bons réflexes:
    • avant de poser une question:
      règles | faq | tutoriels | recherche
    • clarté, politesse, vocabulaire et orthographe soignés = efficacité
    • remercier ceux qui ont pris le temps d'aider et :resolu: si c'est le cas

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

Discussions similaires

  1. [Eigen] création d'une matrice sans connaitre à l'avance la taille
    Par bioinfornatics dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 16/02/2010, 21h13
  2. Réponses: 0
    Dernier message: 24/04/2009, 10h34
  3. Comment allouer de la memoire sans connaitre la taille
    Par mIch°° dans le forum Delphi
    Réponses: 2
    Dernier message: 16/01/2007, 09h25
  4. Créer un buffer sans connaitre la taille?
    Par barucca dans le forum C++
    Réponses: 11
    Dernier message: 28/04/2005, 20h56
  5. Connaitre la taille de la RAM
    Par dway dans le forum Assembleur
    Réponses: 23
    Dernier message: 15/09/2004, 10h05

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