J'essaie de trouver le moyen le plus efficace d'aligner du texte sur un div. J'ai essayé quelques choses et aucune ne semble fonctionner.
.testimonialText {
position: absolute;
left: 15px;
top: 15px;
width: 150px;
height: 309px;
vertical-align: middle;
text-align: center;
font-family: Georgia, "Times New Roman", Times, serif;
font-style: italic;
padding: 1em 0 1em 0;
}
<div class="testimonialText">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
html
css
vertical-alignment
shinjuo
la source
la source
Réponses:
Centrage vertical en CSS
http://www.jakpsatweb.cz/css/css-vertical-center-solution.html
Résumé de l'article:
Pour un navigateur CSS 2, on peut utiliser
display:table
/display:table-cell
pour centrer le contenu.Un échantillon est également disponible sur JSFiddle :
Il est possible de fusionner des hacks pour les anciens navigateurs (Internet Explorer 6/7) dans des styles en utilisant
#
pour masquer les styles des nouveaux navigateurs:la source
table
malgré cela je brise régulièrement le cœur des fans de CSS. La plupart d'entre eux ne conçoivent que des blogs simples et des sites statiques. Certains d'entre nous construisent des logiciels d'entreprise et ont besoin d'un affichage dense des données, et nos utilisateurs se soucient davantage des fonctionnalités.table
. Les choses vont mieux maintenant, mais certains d'entre nous qui créent des applications Web professionnelles doivent prendre en charge les navigateurs plus anciens (IE6 est toujours utilisé par certains clients!), Tandis que les personnes qui créent des blogs peuvent vivre dans les nuages et prétendre que tout le monde dans le monde a un connexion rapide, nouvel ordinateur et la dernière version du navigateur X avec CSS 3, etc. Exemple: certains plugins Jira utilisent des tableaux à une ligne pour la mise en page (ou l'ont fait de toute façon)Vous devez ajouter l'
line-height
attribut et cet attribut doit correspondre à la hauteur dudiv
. Dans ton cas:En fait, vous pourriez probablement supprimer
height
complètement l' attribut.Cela ne fonctionne que pour une seule ligne de texte , alors soyez prudent.
la source
Voici une excellente ressource
Depuis http://howtocenterincss.com/ :
Utilisation de Flexbox
Conformément à la mise à jour de ce message avec les dernières technologies, voici un moyen beaucoup plus facile de centrer quelque chose à l'aide de Flexbox. Flexbox n'est pas pris en charge dans Internet Explorer 9 et versions antérieures .
Voici quelques excellentes ressources:
JSFiddle avec préfixes de navigateur
Une autre solution
Cela vient de zéro zéro et vous permet de centrer quoi que ce soit avec six lignes de CSS
Cette méthode n'est pas prise en charge dans Internet Explorer 8 et versions antérieures .
jsfiddle
Réponse précédente
Une approche simple et multi-navigateur, utile car les liens dans la réponse marquée sont légèrement dépassés.
Andy Howard - Comment centrer verticalement et horizontalement du texte dans une liste non divisée ou div
Comme je ne me souciais pas beaucoup d'Internet Explorer 7/6 pour le dernier projet sur lequel j'ai travaillé, j'ai utilisé une version légèrement allégée (c'est-à-dire supprimé les éléments qui le faisaient fonctionner dans Internet Explorer 7 et 6). Cela pourrait être utile pour quelqu'un d'autre ...
JSFiddle
la source
height: x; line-height: x;
mais le plus souvent, je n'ai pas besoin de plusieurs lignes de texte. C'est pourquoi j'aime cette solution. Simple, réutilisable, multi-navigateur, pas de js et nécessite seulement un petit balisage supplémentaire.height: 100px;
à laheight: 100%;
fois pour leli
et.outerContainer
.C'est facile avec
display: flex
. Avec la méthode suivante, le texte dans lediv
sera centré verticalement:Et si vous voulez, horizontal:
Vous devez voir la version du navigateur dont vous avez besoin; dans les anciennes versions, le code ne fonctionne pas.
la source
text-align: center
est également nécessaire, car la largeur de remplissage du texte long et sera alignée à gaucheJ'utilise ce qui suit pour centrer verticalement des éléments aléatoires facilement:
HTML:
CSS:
Cela centre le texte dans ma
div
au milieu vertical exact d'un extérieur de 200 pixels de hautdiv
. Notez que vous devrez peut-être utiliser un préfixe de navigateur (comme-webkit-
dans mon cas) pour que cela fonctionne pour votre navigateur.Cela fonctionne non seulement pour le texte, mais aussi pour d'autres éléments.
la source
position: absolute;
- Merci! NB Vous voudrez peut-être inclure-ms-transform
ou IE remplira autre chose-web-kit-transform
avanttransform
. Peut-être que l'ajout-ms-transform
peut résoudre le problème de @ ToniMichelCaubet.Vous pouvez le faire en définissant l'affichage sur «cellule de tableau» et en appliquant
vertical-align: middle;
:Ceci n'est cependant pas pris en charge par toutes les versions d'Internet Explorer selon cet extrait que j'ai copié depuis http://www.w3schools.com/cssref/pr_class_display.asp sans autorisation.
Remarque: Les valeurs "table-en-ligne", "table", "légende-table", "cellule-table", "colonne-table", "groupe-colonne-table", "ligne-table", "ligne-table" -group "et" inherit "ne sont pas pris en charge par Internet Explorer 7 et versions antérieures. Internet Explorer 8 nécessite un! DOCTYPE. Internet Explorer 9 prend en charge les valeurs.
Le tableau suivant montre également les valeurs d'affichage autorisées à partir de http://www.w3schools.com/cssref/pr_class_display.asp .
la source
De nos jours (nous n'avons plus besoin d'Internet Explorer 6-7-8), j'utiliserais simplement CSS
display: table
pour ce problème (oudisplay: flex
).Pour les navigateurs plus anciens:
Table:
Fléchir:
C'est (en fait, était) ma solution préférée pour ce problème (navigateur simple et très bien pris en charge):
la source
Essayez ceci, ajoutez le parent div:
la source
Voici une solution qui fonctionne mieux pour une seule ligne de texte.
Il peut également fonctionner pour le texte à plusieurs lignes avec quelques ajustements si le nombre de lignes est connu.
Voici un JSFiddle .
la source
la source
Vous pouvez aligner le texte central verticalement à l'intérieur d'un div à l'aide de Flexbox.
Vous pouvez en savoir plus à ce sujet dans Un guide complet de Flexbox .
la source
Vérifiez cette solution simple:
HTML
CSS
JSFiddle
la source
Il existe un moyen plus simple d'aligner verticalement le contenu sans recourir au tableau / tableau-cellule:
http://jsfiddle.net/bBW5w/1/
J'y ai ajouté un div invisible (largeur = 0) qui prend toute la hauteur du conteneur.
Il semble fonctionner dans Internet Explorer et Firefox (dernières versions). Je n'ai pas vérifié avec d'autres navigateurs
Et bien sûr le CSS:
la source
Il s'agit de la solution la plus propre que j'ai trouvée (Internet Explorer 9+) et ajoute un correctif pour le problème "off by .5 pixel" en utilisant
transform-style
que d'autres réponses avaient omis.Source: aligner verticalement n'importe quoi avec seulement 3 lignes de CSS
la source
Une solution simple à un élément de non-connaissance des valeurs:
HTML
CSS
la source
Selon la réponse d'Adam Tomat, un exemple JSFiddle a été préparé pour aligner le texte en div :
en utilisant display: flex en CSS:
avec un autre exemple et quelques explications dans un article de blog .
la source
Marge automatique sur un élément de grille.
De manière similaire à Flexbox, l'application automatique de la marge sur un élément de grille le centre sur les deux axes:
la source
Flexbox a parfaitement fonctionné pour moi, centrant plusieurs éléments à l'intérieur de la division parent horizontalement et verticalement.
Code HTML:
Code CSS: le
code ci-dessous empile tous les éléments à l'intérieur de parent-div dans une colonne, en centrant les éléments horizontalement et verticalement. J'ai utilisé le child-div pour garder les deux éléments d'ancrage sur la même ligne (ligne). Sans child-div, les trois éléments (Anchor, Anchor & Paragraph) sont empilés dans la colonne parent-div les uns sur les autres. Ici, seul child-div est empilé dans la colonne parent-div.
la source
Utilisation:
Avec cette astuce, vous pouvez aligner n'importe quoi si vous ne voulez pas le faire ajouter au centre "gauche: 0" pour aligner à gauche.
la source
HTML
CSS
la source
En utilisant flex, faites attention aux différences de rendu des navigateurs.
Cela fonctionne bien pour Chrome et Internet Explorer:
Comparez avec celui-ci qui ne fonctionne qu'avec Chrome:
la source
Il s'agit d'une autre variante de
div
dans undiv
modèle utilisantcalc()
en CSS.Cela fonctionne, car:
position:absolute
pour un placement précis de l'div
intérieur d'undiv
div
parce que nous la réglons sur20px
.calc(50% - 10px)
pour 50% - la moitié de la hauteur pour centrer l'intérieurdiv
la source
Cela fonctionne bien:
HTML
Toupet
Sans et avec la balise image
<mat-icon>
(qui est une police).la source
Hmm, il y a évidemment de nombreuses façons de résoudre ce problème.
Mais j'ai un
<div>
qui est positionné absolument,height:100%
(en fait,top:0;bottom:0
et à largeur fixe) etdisplay:table-cell
n'a tout simplement pas fonctionné pour centrer le texte verticalement. Ma solution nécessitait un élément span interne, mais je vois que la plupart des autres solutions le font aussi, donc je pourrais aussi bien l'ajouter:Mon conteneur est un
.label
et je veux que le nombre soit centré verticalement. Je l' ai fait en positionnant absolument àtop:50%
et la mise enline-height:0
Et le CSS est le suivant:
Voyez-le en action: http://jsfiddle.net/jcward/7gMLx/
la source
Vous pouvez utiliser css
flexbox
.la source
L'utilisation de la grille CSS l'a fait pour moi:
la source
Essayez d'incorporer un élément de table.
la source
Il existe plusieurs astuces pour afficher du contenu ou une image au centre d'une div. Certaines des réponses sont vraiment agréables et je suis entièrement d'accord avec celles-ci également.
Centrage absolu horizontal et vertical en CSS
http://www.css-jquery-design.com/2013/12/css-techniques-absolute-horizontal-and-vertical-centering-in-css/
Il existe plus de 10 techniques avec des exemples . Maintenant, c'est à vous que vous préférez.
Sans aucun doute,
display:table; display:table-Cell
c'est une meilleure astuce.Quelques bonnes astuces sont les suivantes:
Astuce 1 - En utilisant
display:table; display:table-cell
HTML
Code CSS
Astuce 2 - En utilisant
display:inline-block
HTML
Code CSS
Astuce 3 - En utilisant
position:relative;position:absolute
la source
CSS:
Ajoutez cette classe à l'élément qui contient les éléments que vous souhaitez aligner verticalement
la source
Si vous devez utiliser avec la
min-height
propriété, vous devez ajouter ce CSS sur:la source