140 votes

Aligne verticalement CSS :before et :after contenu

Je suis en train de centre le lien avec l'image, mais ne semble pas possible de déplacer le contenu verticalement en aucune façon.

http://img693.imageshack.us/img693/6207/picture2pc.png

<h4>More Information</h4>
<a href="#" class="pdf">File Name</a>

L'icône est de 22 x 22px

.pdf {
    font-size: 12px;
}
.pdf:before {
    padding:0 5px 0 0;
    content: url(../img/icon/pdf_small.png);
}
.pdf:after {
    content: " ( .pdf )";
    font-size: 10px;
}
.pdf:hover:after {
    color: #000;
}

162voto

theorise Points 2336

Répondu à ma propre question après avoir lu vos conseils sur le vertical-align attribut CSS. Merci pour l'astuce!

.pdf:before {
    padding: 0 5px 0 0;
    content: url(../img/icon/pdf_small.png);
    vertical-align: -50%;
}

31voto

Chowlett Points 19889

Je suis pas de CSS expert, mais qu'advient-il si vous mettez de l' vertical-align: middle; votre .pdf:before directive?

14voto

Je pense qu'un nettoyant approche est d'hériter de l'alignement vertical:

Dans le html:

<div class="shortcut"><a href="#">Download</a></div>

Et dans le css:

.shortcut {
    vertical-align: middle;
}
.shortcut > a:after {
    vertical-align: inherit;
{

De cette façon, l'icône s'aligner correctement dans n'importe quelle résolution/taille de police combinaison. Idéal pour une utilisation avec l'icône polices.

6voto

MatW Points 4130

Déconner avec la hauteur de la ligne de l'attribut devrait faire l'affaire. Je n'ai pas testé, donc la valeur exacte ne peut pas être de droite, mais commencer avec 1.5 em, et de modifier, par incréments de 0,1 jusqu'à ce qu'il s'aligne.

.pdf{ line-height:1.5em; }

4voto

JoomFever Points 11

Je viens de trouver un très soignée de solution, je pense. Le truc est de mettre la line-height de l'image (ou le contenu) height.

texte

À l'aide de CSS:

div{
  line-height: 26px; /* height of the image in #submit span:after */
}

span:after{
    content: url('images/forward.png');
    vertical-align: bottom;
}

Ce serait sans doute également de travailler sans envergure.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X