28172 sujets

CSS et mise en forme, CSS3

J'ai toujours lu que pour centrer un texte verticalement dans une zone, il fallait lui attribuer un line-height égal au height de la zone. Pourtant, j'ai ici un texte de titre <h1> qui s'affiche tout en bas de la zone de la balise (c'est visible avec les outils de développement du navigateur, qui mettent en évidence la zone des balises). Voici mon CSS :
h1{
	height: 64px;
	line-height: 64px;
	text-align: center;
	font-family: 'Century Gothic', 'Comic Sans MS', cursive;
	font-weight: normal;
	font-style: italic;
	font-size: 3rem;
	color: rgba(255,255,255,0.7);
	text-shadow: 5px 5px 8px rgba(0, 0, 50, .5);
}

Cela contredit ce que j'ai appris.
C'est assez agaçant. Comment faire ? J'ai inséré une image à côté du texte, (avant le texte), à l'intérieur de la même balise. L'image est donc plus surélevée que le texte.
Si je fais un padding-bottom, par exemple, les deux éléments vont partir vers le haut, et ce n'est pas le but recherché...
Bonsoir,
l'image est une boite en ligne, qui va se poser sur le baseline par défaut, pour la centrer verticalement sur le line-height , par rapport au texte ou une autre boite en ligne, il faut modifier son vertical-align:baseline;/* valeur par défaut*/ par vertical-align:middle;.
++
Modifié par gc-nomade (25 Nov 2013 - 21:45)
Merci de ton intervention, gc-nomade, mais tu devrais relire ma question : ce n'est pas l'image qui ne se centre pas (au contraire), c'est le texte. J'ai un "logo" (en fait, ma tronche), légèrement surélevé, au centre de la zone du <h1>, puis le titre, sur la base... C'est bien ça qui me surprend...

Une autre idée ?...
Je crois que je tiens une piste (mais je ne m'explique pas pour autant ce phénomène) : le texte n'est pas centré pas rapport à la balise h1 qui le contient directement, mais il est effectivement centré par rapport à la <div id="header> qui la contient. La <div> "header" englobe à la fois l'image, le texte en <h1>, et la barre de menu qui est dessous. Le texte n'a donc pas l'air centré sur le <h1> mais est bien au milieu du header. Mais pourquoi le texte ne s'aligne-t-il pas sur son parent immédiat ?
C'est pourtant toi qui as raison : je viens d'essayer d'ajouter un style à mon image comme tu l'avais dit (vertical-align:middle;) et ça marche : Le texte change aussi son alignement ! J'ai même l'impression qu'il n'y a que le texte qui a bougé.
Il y a là encore quelque chose qui m'échappe... Enfin, tant que ça marche...

Merci pour ton aide ! Mon problème est résolu..même si je suis encore un peu perplexe...