Problème aligne verticalement du texte d'un élément qui s'étend sur deux lignes
Je veux aligner du texte dans le milieu de mon élément l'aide de CSS. C'est mon balisage:
<div id="testimonial">
<span class="quote">Some random text that spans two lines</span>
</div>
Et le CSS:
#testimonial {
background: url('images/testimonial.png') no-repeat;
width: 898px;
height: 138px;
margin: 0 auto;
margin-top: 10px;
text-align: center;
padding: 0px 30px 0px 30px;
}
.quote {
font-size: 32px;
font-family: "Times New Roman", Verdanna, Arial, sans-serif;
vertical-align: middle;
font-style: italic;
color: #676767;
text-shadow: 1px 1px #e7e7e7;
}
Habituellement pour obtenir .quote
dans le milieu vertical de #testimonial
, je le ferais:
.quote { line-height: 138px; }
Mais cela casse la mise en page parce que le texte en .quote
s'étend sur plus d'une ligne.
Comme vous pouvez le voir j'ai essayé de faire vertical-align: middle;
et que cela ne fonctionne pas.
Toute aide est appréciée. Des acclamations.
double possible de Comment faire pour aligner le texte verticalement ?
Non,
Ce n'est pas une bonne double. L'on a accepté la réponse est à l'aide de
La "meilleure" façon est d'utiliser/d'imiter un tableau (que ce soit dans le balisage ou en CSS à l'aide de table-cell) et puis sur set pour afficher valign="middle". Mais elle est sale. Oh si sale.
Vous avez raison - mais il y a beaucoup de choses à choisir. Permettez-moi d'en trouver un autre.
Non,
line-height
ne fonctionne pas dans ce cas car mon texte est plus qu'une ligne.Ce n'est pas une bonne double. L'on a accepté la réponse est à l'aide de
line-height
, ce qui n'est pas bon pour plusieurs lignes. Le display: table-cell
réponse est là, mais il n'a pas d'explication et pas de upvotes.La "meilleure" façon est d'utiliser/d'imiter un tableau (que ce soit dans le balisage ou en CSS à l'aide de table-cell) et puis sur set pour afficher valign="middle". Mais elle est sale. Oh si sale.
Vous avez raison - mais il y a beaucoup de choses à choisir. Permettez-moi d'en trouver un autre.
OriginalL'auteur Josh | 2011-05-30
Vous devez vous connecter pour publier un commentaire.
Je récemment découvert verticale de centrage de quelque chose qui a pas défini les dimensions va très bien avec
vertical-align: middle;
en combinaison avecline-height: 0;
.Découvrez ce démonstration de violon.
HTML:
CSS:
Très élégant 🙂
Dans le cas où vous ne pourriez pas le faire fonctionner sous IE, essayez d'utiliser de simples doctype html5, comme <!DOCTYPE html>. J'ai trouvé que ça ne fonctionne pas en dire en utilisant laid XTHML doctype.
OriginalL'auteur NGLN
que personne ne lui répondit avec la cellule de tableau encore trouvé de solution..
ici vous allez avec un un IE6/7 solution aussi (même s'il implique un yukky HTML hack) @thirtydot dit dans les commentaires, le tableau d'affichage des propriétés ne sont pas pris en charge par IE7 et au - dessous de
si vous ne voulez pas/que l'extra élément HTML, vous pouvez simplement donner IE7 et ci-dessous quelques-top padding sur le
.quote
- de sorte que, bien qu'il ne serait pas centrée verticalement avec précision, il peut être acceptable de retomberCSS:
IE CSS:
HTML:
OriginalL'auteur clairesuzy
Vous pouvez faire plus simple avec un seul span
http://jsfiddle.net/7ebLd/
OriginalL'auteur polkila
Ce site web offre une multitude de options pour le centrage vertical avec css.
Si vous pouvez définir une taille sur
.quote
, je pense que la Méthode 2 serait de travailler dans cette situation:Une autre option est d'utiliser
display:table-cell; vertical-align:middle;
méthode dans le CSS, mais cette option ne fonctionne pas sous IE, donc vous devrez également définir un IE-version spécifique.OriginalL'auteur Paul Sham
Ce site:
http://www.emblematiq.com/blog/vertical_align_with_css/
Avec le résultat de:
http://www.emblematiq.com/blog/vertical_align_with_css/assets/03.html
Utilise le balisage suivant/css pour centrer verticalement sur plusieurs lignes à l'aide de la
display: table-cell
,vertically-align: middle
méthode:OriginalL'auteur Jared Farrish