J'essaie de créer une div pour la page de destination de mon centre de site Web au centre même de l'écran, mais cela ne fonctionne pas.
Voici mon code
CSS:
.centerDiv{
width:800px;
margin:0 auto;
border-radius: 5px;
background:#111;
padding:10px;}
HTML:
<div id="centerDiv" class="centerDiv">
<h1>Title</h1>
<p>Text will go here.</p>
</div>
Merci.
Note: Si vous essayez de centrer un div horizontalement et verticalement, je vous conseillerais de regarder dans flexbox . Vous aurez toujours besoin de fournir un support de secours, mais flexbox, c'est l'avenir et c'est incroyable.
Mise à jour: tous les navigateurs modernes sont maintenant pris en charge par flexbox.
Vous devez d'abord donner à la div une largeur et une hauteur statiques.
Deuxièmement, vous devez définir position: absolute;
et left: 50%; top: 50%;
, puis vous devez faire un margin-left
et un margin-top
qui sont HALF de hauteur et de largeur. Il s'affichera ensuite correctement.
CSS:
.centerDiv{
width: 800px;
border-radius: 5px;
background: #ccc;
padding: 10px;
height: 50px;
position: absolute;
margin-top: -25px;
margin-left: -400px;
top: 50%;
left: 50%;
}
P.S. J'ai un peu changé ton style pour que tu puisses lire le texte. J'espère que cela t'aides!
Ce code ( demo ) permet de définir les variables width
et height
sans avoir à mettre à jour d’autres propriétés (par exemple, top
= height / 2
) ni à faire appel à des techniques qui ne sont pas bien prises en charge (par exemple, display:table;
. Il manque le support pour les anciennes versions IE combinées à une autre solution pour IE mais vous êtes probablement le meilleur choix.
Le CSS:
.absoluteCenter {
/* Must manually set width/height */
width:800px;
height:500px;
/* The magic centering code */
margin:auto;
position:absolute;
top:0;bottom:0; /* Aligns Vertically - Remove for Horizontal Only */
left:0;right:0; /* Aligns Horizontally - Remove for Vertical Only */
/* Prevent div from overflowing main window */
max-width:100%;
max-height:100%;
overflow:auto;
}
/* IE 7 and Below */
:first-child+html .absoluteCenter,
* html .absoluteCenter {
/* Place code here to override all above values, and add IE friendly centering */
}
Et le HTML:
<div class="absoluteCenter">
Content of DIV
</div>
Ce que vous cherchez, c'est display:table
et display:table-cell
. Cette option doit aligner verticalement l'élément #center dans l'élément #parent indépendamment de la hauteur de l'élément #center. Je crois que vous avez besoin d’une hauteur sur l’élément #parent.
HTML
<div id="parent">
<div id="center">
<h1>Title</h1>
<p>Text will go here.</p>
</div>
</div>
CSS
#parent{
display: table;
width: /* Your width */;
height: /* Your height */;
}
#center{
position: relative;
display: table-cell;
width: /* Your width */;
height: /* Your height */;
vertical-align: middle;
margin: 0 auto;
}
Je viens de l'utiliser hier, en utilisant display:table
sur la body
. Cette technique devrait être compatible via IE8.
Essayez ce qui suit:
.centerDiv{
position: absolute;
top: 50%;
height: 400px;
margin-top: -200px; /* Half of the height */
left: 50%;
width:800px;
margin-left: -400px; /* Half of the width */
border-radius: 5px;
background:#111;
padding:10px;
}
définissez margin sur auto au lieu de 0 auto et vous avez besoin d'une hauteur. Je pense que 100% pour votre but.