Les deux manières que cet article mentionne déjà comme des réponses séparées, mais vous seriez un meilleur CSSER si vous saviez que vertical-align code> était réellement utilisé pour: phrogz.net/css/vertical-align
@scragz - C'est un bon lien. Cependant, je n'utiliserais pas Affichage: Cellule de table Code>. Bien sûr, je n'utiliserais pas ma réponse proposée de
vertical-align code> La propriété est vraiment bon sur td code> éléments. Essayez quelque chose comme: xxx pré>
ou puisque vous connaissez la hauteur et la largeur du img code>: p> xxx pré> p>
2 commentaires
ZOMG, rien de ce qui précède ne me semble ok, je veux dire qu'il y a un trou sérieux dans CSS, ils développent des ombres, etc. et que nous devons utiliser des tables encore ou des divs dans des divs au centre verticalement ... Vache sacrée. Je dois utiliser des divs. Et je ne peux pas utiliser le deuxième code car la hauteur div sera modifiée par les utilisateurs. Donc je suis perdu.
@Anonymous: Êtes-vous capable d'utiliser JavaScript, ou des bibliothèques JS (motoools, scriptstacles, jQuery, lueur ...)?
18 votes
pour aligner verticalement du texte dans un élément parent et gardez à l'esprit qu'un img code> est un élément en ligne et donc se comporte de la même manière forte> au texte, vous pouvez simplement définir Line-hauteur code> à la hauteur code> de l'élément parent: xxx pré>
Le type vertical-align code> CSS Spécifie l'alignement du texte dans sa ligne de texte. Cela vous permet de spécifier du texte en tant qu'excripteur ou à l'indice, par exemple.
Il n'est donc pas destiné à aligner verticalement un élément dans une boîte. P>
Il y a une exception explicite à cela, cependant - - cellules de table (c.-à-d.
code> et
code> éléments) Utilisez le style vertical-align code> pour faire exactement cela: aligner le contenu de La cellule dans la cellule. P>
Cette exception est une chose d'une quirk - cela ne devrait vraiment pas exister. Les concepteurs CSS le mettent là-bas afin de permettre à CSS de reproduire l'attribut Valign Code> d'éléments de table, couramment utilisés par les concepteurs dans les jours sombres des mises en page à base de table. P>
Pour d'autres éléments, alignant le contenu d'une boîte verticalement au milieu de la situation peut être un peu de beaux-arts. Il existe plusieurs techniques: p>
Pour les lignes simples de texte, faites simplement la la hauteur de ligne > identique à la hauteur de la boîte entière. Vous n'avez probablement pas besoin de vertical-align code> pour cela. P> li>
Utilisez Affichage: Cellule de table; CODE> Pour simuler l'élément simuler une cellule de table, puis utilisez vertical-align code>. Cela fonctionne, mais peut avoir des conséquences inattendues (il existe d'autres attributs de cellules de table que vous ne voudrez peut-être pas simuler). P> LI>
Si vous connaissez la hauteur de l'élément, vous souhaitez aligner verticalement, vous pouvez la positionner à 50% moins la moitié de sa hauteur, comme celle-ci: P>
XXX PRE> LI>
ol>
Il y en a quelques autres, mais ceux-ci devraient vous aider à démarrer. P>
espère que cela aide. p> p>
0 commentaires
1 votes
JavaScript serait probablement le meilleur meilleur pour obtenir l'image centrée dans le centre vertical pour chaque cas. Si vous pouvez utiliser une bibliothèque comme JQuery, ce n'est que quelques lignes de code.
$(function(){
var containerHeight = $('#container').outerHeight();
var imgHeight = $('#logo img').outerHeight();
var difference = (containerHeight - imgHeight)/2;
$('#logo img').css({'position' : 'relative', 'top' : difference + 'px'});
2 commentaires
Il a donc besoin d'inclure la bibliothèque de JQUERY complète, ainsi que ce script? Semble un peu de surenche juste pour centrer quelque chose.
S'il doit centrer quelque chose de plus que quelques fois et s'il ne connaissait pas une) quelle est la hauteur du parent div est, et b) quelle est la hauteur de l'image, cela fonctionnera à chaque fois, et dans tous les cas
4 votes
Pour une solution plus moderne (IE8 +) qui n'utilise pas de tables, j'aime Celui-ci meilleur.
<style>
/* Can be any width and height */
.block {
height:500px;
text-align: center;
}
/* The ghost, nudged to maintain perfect centering */
.block:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
margin-right: -0.25em; /* Adjusts for spacing */
}
/* The element to be centered, can be any width or height */
.centered {
display: inline-block;
vertical-align: middle;
width: 300px;
}
</style>
<div class="block"><div class="centered">Centered Content</div></div>
2 commentaires
La meilleure solution en effet, puisqu'elle n'a pas besoin de connaître la hauteur du contenu et n'utilise pas de CSS de la table de table. Merci d'avoir partagé!
Y a-t-il un moyen de faire cela tout en ayant une largeur de pourcentage (qui pourrait être 100%).
Les deux manières que cet article mentionne déjà comme des réponses séparées, mais vous seriez un meilleur CSSER si vous saviez que
vertical-align code> était réellement utilisé pour: phrogz.net/css/vertical-align
@scragz - C'est un bon lien. Cependant, je n'utiliserais pas
Affichage: Cellule de table Code>. Bien sûr, je n'utiliserais pas ma réponse proposée de code> non plus. Ha.
3
2 commentaires
18
0 commentaires
12
pbs.twimg.com/media/b2mw8nicqaa6iIP.jpg
Est-ce que cela répond à votre question? Comment puis-je aligner verticalement du texte dans une DIV?
9 Réponses :
votes
vertical-align code> La propriété est vraiment bon sur
td code> éléments. Essayez quelque chose comme: xxx pré>
ou puisque vous connaissez la hauteur et la largeur du
img code>: p> xxx pré> p>
ZOMG, rien de ce qui précède ne me semble ok, je veux dire qu'il y a un trou sérieux dans CSS, ils développent des ombres, etc. et que nous devons utiliser des tables encore ou des divs dans des divs au centre verticalement ... Vache sacrée. Je dois utiliser des divs. Et je ne peux pas utiliser le deuxième code car la hauteur div sera modifiée par les utilisateurs. Donc je suis perdu.
@Anonymous: Êtes-vous capable d'utiliser JavaScript, ou des bibliothèques JS (motoools, scriptstacles, jQuery, lueur ...)?
votes
pour aligner verticalement du texte dans un élément parent et gardez à l'esprit qu'un
img code> est un élément en ligne et donc se comporte de la même manière forte> au texte, vous pouvez simplement définir
Line-hauteur code> à la hauteur code> de l'élément parent: xxx pré>
JS Fiddle Demo . P> P>
votes
Le type
vertical-align code> CSS Spécifie l'alignement du texte dans sa ligne de texte. Cela vous permet de spécifier du texte en tant qu'excripteur ou à l'indice, par exemple.
Il n'est donc pas destiné à aligner verticalement un élément dans une boîte. P>
Il y a une exception explicite à cela, cependant - - cellules de table (c.-à-d. code> et code> éléments) Utilisez le style
vertical-align code> pour faire exactement cela: aligner le contenu de La cellule dans la cellule. P>
Cette exception est une chose d'une quirk - cela ne devrait vraiment pas exister. Les concepteurs CSS le mettent là-bas afin de permettre à CSS de reproduire l'attribut
Valign Code> d'éléments de table, couramment utilisés par les concepteurs dans les jours sombres des mises en page à base de table. P>-
Pour d'autres éléments, alignant le contenu d'une boîte verticalement au milieu de la situation peut être un peu de beaux-arts. Il existe plusieurs techniques: p>
Pour les lignes simples de texte, faites simplement la
la hauteur de ligne > identique à la hauteur de la boîte entière. Vous n'avez probablement pas besoin de
vertical-align code> pour cela. P> li>-
Utilisez
Affichage: Cellule de table; CODE> Pour simuler l'élément simuler une cellule de table, puis utilisez
vertical-align code>. Cela fonctionne, mais peut avoir des conséquences inattendues (il existe d'autres attributs de cellules de table que vous ne voudrez peut-être pas simuler). P> LI>-
Si vous connaissez la hauteur de l'élément, vous souhaitez aligner verticalement, vous pouvez la positionner à 50% moins la moitié de sa hauteur, comme celle-ci: P> XXX PRE> LI>
ol>
0 commentaires
1
2 commentaires
4
2 commentaires
2
0 commentaires
2
0 commentaires
4
0 commentaires
1
0 commentaires
Il y en a quelques autres, mais ceux-ci devraient vous aider à démarrer. P>
espère que cela aide. p> p>
votes
JavaScript serait probablement le meilleur meilleur pour obtenir l'image centrée dans le centre vertical pour chaque cas. Si vous pouvez utiliser une bibliothèque comme JQuery, ce n'est que quelques lignes de code.
Il a donc besoin d'inclure la bibliothèque de JQUERY complète, ainsi que ce script? Semble un peu de surenche juste pour centrer quelque chose.
S'il doit centrer quelque chose de plus que quelques fois et s'il ne connaissait pas une) quelle est la hauteur du parent div est, et b) quelle est la hauteur de l'image, cela fonctionnera à chaque fois, et dans tous les cas
votes
Pour une solution plus moderne (IE8 +) qui n'utilise pas de tables, j'aime Celui-ci meilleur.
La meilleure solution en effet, puisqu'elle n'a pas besoin de connaître la hauteur du contenu et n'utilise pas de CSS de la table de table. Merci d'avoir partagé!
Y a-t-il un moyen de faire cela tout en ayant une largeur de pourcentage (qui pourrait être 100%).
votes
jolie Approche fraîche et moderne (Avec hauteur spécifiée):
votes
J'utilise l'affichage: Boîte Propriété:
votes
Utilisez la propriété TRADUCTE, c'est simple et fonctionne même dans IE:
votes
J'utilise Flex pour centrer un élément. Il est efficace de rendre la page plus réactive.
Articles qui pourrait vous intéresser :
Google Chrome Uncaught (promis) DOMException lors de la lecture AUDIOSelect2 ne s'affiche pas correctement dans le mode bootstrap
Le bootstrap de Twitter a-t-il des classes utilitaires de taille de police?
Comment puis-je définir un format pour les nombres d'entrée dans Blazor