Je souhaite positionner un <div>
(ou un <table>
) élément au centre de l'écran quelle que soit la taille de l'écran. En d'autres termes, l'espace laissé en «haut» et «bas» doit être égal et l'espace à gauche sur les côtés «droit» et «gauche» doit être égal. Je voudrais accomplir cela avec seulement CSS.
J'ai essayé ce qui suit mais cela ne fonctionne pas:
<body>
<div style="top:0px; border:1px solid red;">
<table border="1" align="center">
<tr height="100%">
<td height="100%" width="100%" valign="middle" align="center">
We are launching soon!
</td>
</tr>
</table>
</div>
</body>
Remarque:
il n'y a pas de problème si l' <div>
élément (ou <table>
) défile avec le site Web ou non. Je veux juste qu'il soit centré lorsque la page se charge.
javascript
css
html
sumit
la source
la source
Réponses:
Le moyen le plus simple, si vous avez une largeur et une hauteur fixes:
Veuillez ne pas utiliser de styles en ligne! Voici un exemple fonctionnel http://jsfiddle.net/S5bKq/ .
la source
Les transformations étant de plus en plus prises en charge de nos jours, vous pouvez le faire sans connaître la largeur / hauteur de la fenêtre contextuelle.
Facile! JSFiddle ici: http://jsfiddle.net/LgSZV/
Mise à jour: consultez https://css-tricks.com/centering-css-complete-guide/ pour un guide assez exhaustif sur le centrage CSS. L'ajout à cette réponse car il semble avoir beaucoup de globes oculaires.
la source
overflow:auto
, le défilement est foiré dans IE9. :(Réglez la largeur et la hauteur et vous êtes bon.
Si vous voulez que les dimensions des éléments soient flexibles (et que vous ne vous souciez pas des anciens navigateurs), optez pour la réponse de XwipeoutX .
la source
Cela fonctionnera pour n'importe quel objet. Même si vous ne connaissez pas la taille:
la source
Maintenant, c'est plus facile avec HTML 5 et CSS 3:
la source
Si vous avez une position fixe
div
juste absolue, celle-ci à 50% du haut et 50% à gauche et la marge négative en haut et à gauche de la moitié de la hauteur et de la largeur respectivement. Adaptez-vous à vos besoins:la source
Utilisez flex . Beaucoup plus simple et fonctionnera quelle que soit votre
div
taille:la source
Je ferais cela en CSS:
puis en HTML:
la source
essaye ça
Ou ca
la source
S'il y a quelqu'un qui cherche une solution,
J'ai trouvé ça,
C'est la meilleure solution que j'ai trouvée!
http://dabblet.com/gist/2872671
Espérons que vous apprécierez!
la source
Une autre approche flexible et simple pour afficher le bloc au centre: utiliser l'alignement de texte natif avec
line-height
ettext-align
.Solution:
Et échantillon html:
Nous faisons le
div.parent
plein écran, et son unique enfantdiv.child
s'aligne en tant que texte avecdisplay: inline-block
.Avantages:
Exemple simple sur JSFiddle: https://jsfiddle.net/k9u6ma8g
la source
Solution alternative qui n'utilise pas la position absolue:
je vois beaucoup de réponses absolues de position. Je ne pourrais pas utiliser la position absolue sans casser autre chose. Donc, pour ceux qui ne le pourraient pas aussi, voici ce que j'ai fait:
https://stackoverflow.com/a/58622840/6546317 (posté en réponse à une autre question).
La solution se concentre uniquement sur le centrage vertical car mes éléments enfants étaient déjà centrés horizontalement, mais la même chose pourrait être appliquée si vous ne pouviez pas les centrer horizontalement d'une autre manière.
la source
essaye ça:
la source