Comment aligner une image et du texte verticalement dans le milieu?
J'ai un DIV en haut et un peu d'ancres. La première est de style avec un logo et le reste du texte. Les styles que j'ai mis sont comme suit.
div.nav-top {
height: 120px;
vertical-align: middle;
}
a.nav-logo {
background: no-repeat url(Logo.png);
background-size: 200px 40px;
width: 200px;
height: 40px;
display: inline-block;
}
a.nav-link {
vertical-align: middle;
}
Toutefois, ces éléments ne sont pas centrées dans le div. L'alignement semble suivre l'image, ce qui est en haut. Le texte est dans le milieu par rapport à l'image. Ce n'est pas une mauvaise idée mais j'ai besoin de l'ensemble du système img-un-un-un-un pour être centré verticalement. Pour le moment, je pavé, mais dès que la hauteur de la DIV extérieure change, tout se casse.
Ce que je fais mal?
(J'ai trouvé ce post mais ici, ils s'appliquent tables et tels. Ne semble pas comme la solution la plus appropriée. Peut-être que je me trompe?
- avez-vous essayé la solution dans le post que vous avez lié à ou le trouver? fait-il? si elle a fait un travail, pourquoi n'est-il pas approprié?
- Désolé d'être floues. Il semblait être un très vaste et complexe, approche de fonctions de base. Je ne dis pas que c'est faux. Juste eu le sentiment que le centrage du texte dans un div verticalement devrait exiger quelque chose de très, très basique. J'ai essayer de faire la distinction entre "faire" et "faire bien".
Vous devez vous connecter pour publier un commentaire.
Vous pouvez vous référer à ce blog, où le propriétaire décrit le centrage des questions. Il a commencé à 2001 mais être conscient que la dernière mise à jour a été faite l'été dernier, et j'admire sa persévérance. Il présente des exemples sur la façon de centre de dans les différentes versions de CSS.
Dans votre cas, je suggère que vous utilisez display: flex comme si. Notez que l'ensemble de centrage de la magie est fait à partir du contenant de contrôle et imposées sur le sous-jacent enfants. Il y a en fait pas besoin de style nav-lien à tous (voir la remarque ci-dessous l'exemple, bien que).
Qui est une chose nouvelle dans le style, et a récemment mis en œuvre. L'inconvénient de cette est que les navigateurs plus anciens pourraient avoir des problèmes de le rendre. Mais l'avantage est qu'il est beaucoup plus intuitive pour les concepteurs (et récupérer un décent version d'un navigateur n'est pas loin d'atteindre, à moins d'gérés de manière centralisée par l'entreprise).
Vous pouvez utiliser marge pour les commandes d'ancrage, comme ils vont être écrasés toghether. Aussi, les tailles et les polices aurez besoin de réglage. Si vous le faites, vous allez probablement finir par avoir besoin le style que j'ai proposé n'était pas nécessaire, mais c'est des détails seulement vous en êtes conscient.
À L'Aide De Flexbox
CSS:
HTML:
À l'aide de CSS Table
CSS:
HTML:
Il est toujours une bonne pratique pour le contrôle de la hauteur avec des rembourrages au lieu d'une hauteur fixe et des marges au centre. Donc, en gardant cela à l'esprit:
donner la pourpre de la boîte (ou ce qu'il représente le correspondant rembourrage en haut et en bas vers le centre div parent que vous avez créé à l'intérieur.
MODIFIER
ou, si vous DEVEZ avoir une hauteur fixe sur le parent;
Voir ce démo
Que vous pouvez placer vos éléments dans un
div
et l'utilisationmargin: 0, auto;
pour les éléments et le récipient intérieur ainsi.