Comment puis-je centrer le texte verticalement dans la dynamique d'une hauteur de la div?
<body>
<div style="position:absolute; height:100%; width:100%;">
<h1 style="text-align:center;">Text</h1>
</div>
</body>
Comment puis-je à la verticale du centre de la balise h1 à l'intérieur de la balise div, peu importe quelle est la taille de l'élément div est? c'est à dire Si l'utilisateur change son navigateur hauteur, je veux que le h1 à alignées à la verticale dans le centre, conformément à la nouvelle hauteur.
Grâce.
- Peut-être:
padding-top: 50%;
- Voici un excellent article sur le sujet: phrogz.net/css/vertical-align/index.html
Vous devez vous connecter pour publier un commentaire.
La meilleure solution que j'ai jamais rencontré est de faire usage de la
display
de la propriété et de l'ensemble de l'enveloppe de l'élément detable
pour permettre l'utilisation devertical-align:middle
sur l'élément à être centré:Voir ce travail Violon Exemple!
HTML
CSS
TESTÉ SUR
Windows XP Professional versão 2002 Service Pack 3
Windows 7 Édition Familiale Service Pack 1
Linux Ubuntu 12.04
La réponse que j'ai trouver le moins voyant et moins déroutant nécessite l'insertion d'une
<span>
balise avant le<h1>
élément: http://jsfiddle.net/Wexcode/axRxE/HTML:
CSS:
L'expansion de cette technique à la verticale-aligner le navigateur-hauteur: http://jsfiddle.net/Wexcode/axRxE/1/
<span>
et<h1>
tags jette hors de la verticale à l'alignement.:before
pseudo-élément. jsfiddle.net/6kk8yyxk/1http://jsfiddle.net/xQBbQ/
<br/>
pour forcer la deuxième ligne!<h1>
et donner une marge négative de la moitié de ceJ'ai le plus facile des 3 lignes de css qui va souffler votre esprit et vous serez en pensant "Pourquoi n'ai-je pas pensé initialement". L'utiliser sur l'élément que vous souhaitez être positionné à la verticale au centre et le conteneur parent il suffit d'ajouter une hauteur de 100%.
La position peut être relative, absolue ou fixe.
Vous devez définir la hauteur et la largeur .verticalCenter classe le même que celui de votre objet (div, flash, image, texte) qui est centrée. Et les marges doivent être de la moitié de ces la hauteur et la largeur.
Je ne pense pas qu'il y est solution si vous modifiez l'objet de façon dynamique. Sauf, peut-être avec les javascripts.
Voici une solution plutôt simple. C'est surtout basé sur la mise en
display:table-cell
et le choix d'un alignement vertical, comme le moyen.HTML:
CSS:
JSFiddle: http://jsfiddle.net/6Re3E/1/
display:table-cell
ne fonctionne pas dans les vieux IE-s. Qui pourrait être un sujet de préoccupation..Il y a un croix (de bureau) navigateur solution de le faire avec CSS2 + CSS3 et sans Javascript.
Travaille dans
Documentation: Centrage Vertical en CSS Solution Définitive avec Inconnu Hauteur:
http://www.jakpsatweb.cz/css/css-vertical-center-solution.html
Propre jsFiddle Exemple: http://jsfiddle.net/WYgsP/
HTML
CSS
Il fonctionne, même si j'ai ajouter du texte et des sauts de lignes grâce à Firebug, etc.
Pour garder votre CSS propre à partir de la non valide CSS Hacks, je vous recommande d'utiliser les commentaires conditionnels pour elle et de créer une CSS avec le navigateur de Code spécifique.
Comment centrage vertical avec des inconnus hauteur exactement qui fonctionne et pourquoi: description Détaillée
D'autres solutions avec
display: table
et oudisplay: table-cell
et ou de positionnement absolu ici.J'utilise des tables pour tout. Personnellement, je n'ai pas profiter de l'aide de
display: table
ou quelque chose comme ça quand il y a quelque chose qui existe déjà.En utilisant cette même méthode, vous pouvez faire quelque chose comme cela pour votre cas:
De mon point de vue,
div
n'est pas un choix approprié dans ce cas. Ma suggestion est d'aller pourtable
etvertical-align
style sur c'esttd
s.table
s acceptable?