2009-12-29 7 views
2

Je voudrais aligner verticalement du texte et une image dans une boîte CSS.Comment aligner le texte et l'image dans une boîte CSS?

J'ai essayé plusieurs méthodes, voici le code pour le dernier que j'ai essayé appelé « display: table-cell méthode »

<div style="border-color:blue; height:200px; display:table-cell; vertical-align:middle;"> 
2:38<img src="images/stopwatch-button-play.png"> 
</div> 

Voici une capture d'écran du résultat dans la dernière version de Firefox: http://screencast.com/t/Yzg2MzAzNW

L'image est centrée correctement, le texte est centré presque correctement. Il se trouve à la base de l'image. Pourquoi?

+1

Les gars de doctype.com sont excellents pour répondre à ce genre de question. –

+2

Oui. mais il en est de même pour certains d'entre nous ici! :) – jrharshath

+3

'display: table-cell' en dehors de' table-row' entraînera un comportement indéfini, sauf dans IE6-7 où il ne résultera aucun comportement du tout. Ne fais pas ça. – bobince

Répondre

3

modifier les paramètres suivants

<div style="border-color:blue; height:200px; display:table-cell; vertical-align:middle;"> 
2:38<img style="vertical-align:middle" src="images/stopwatch-button-play.png"> 
</div> 
+0

Merci beaucoup! C'est ce qu'il a fait. – Sandra

+1

bienvenue à tout moment – Hiyasat

4

L'alignement vertical est complètement méconnu. Avez-vous lu this?

quant à savoir pourquoi les sites de texte à la ligne de base de l'image, c'est parce que l'image et le texte sont tous deux dans le flux de la div. ils ne se chevaucheront pas. pour avoir le texte centré aussi (impliquant qu'il se trouve sur l'image), vous devrez mettre le texte dans un div ou un span et ajuster son positionnement (le régler sur relatif et expérimenter avec gauche et haut).

À votre écoute

+1

En fait: Oui, j'ai lu ça, aprox. 90 minutes avant que j'abandonne chercher la réponse avec google et posté sur stackoverflow. – Sandra

0

Vous pouvez utiliser la propriété background-position.

il ressemble à ceci.

arrière-plan: url (chemin/vers/image.quoique) top; // l'aligne en haut.

vous pouvez même faire quelque chose comme top left ou top right etc.

w3schools a tout ce que vous devez savoir sur les milieux.

0

Si votre texte est une seule ligne haute, vous pouvez définir-hauteur de la ligne à la hauteur de votre image. Il va centrer le texte verticalement. Ensuite, la position: absolute sur votre image l'empêchera de perturber le positionnement du texte dans la div:

<div style="border-color:blue; height:200px; "> 
<div style="line-height:30px;margin-top:85px">2:38<img style="position:absolute" src="images/stopwatch-button-play.png"></div> 
</div> 
Questions connexes