Supposons que je veuille décorer des liens vers certains types de fichiers en utilisant une image. Je pourrais déclarer mes liens comme
<a href='foo.pdf' class='pdflink'>A File!</a>
puis avoir des CSS comme
.pdflink:after { content: url('/images/pdf.png') }
Maintenant, cela fonctionne très bien, sauf si pdf.png
n'est pas de la bonne taille pour le texte de mon lien.
J'aimerais pouvoir dire au navigateur de mettre à l'échelle l'image de la :after
mais je n'arrive pas à trouver la bonne syntaxe. Ou est-ce que c'est comme pour les images d'arrière-plan, où le redimensionnement n'est tout simplement pas possible ?
ETA : Je penche pour l'une ou l'autre des solutions suivantes : a) redimensionner l'image source pour qu'elle ait la "bonne" taille, côté serveur et/ou b) modifier le balisage pour fournir simplement une balise IMG en ligne. J'essayais d'éviter ces deux solutions, mais elles me semblent plus compatibles que d'essayer de faire des choses uniquement avec CSS. La réponse à ma question initiale semble être "vous pouvez". en quelque sorte le faire, parfois".
1 votes
Y a-t-il une raison impérieuse pour laquelle vous n'utilisez pas les balises "img" entourées de balises "a" ? C'est la syntaxe la plus courante pour une image qui est aussi un lien. Je dis cela parce que même si votre méthode fonctionne, vous risquez de déconcerter les autres développeurs. Les CSS ont également la réputation d'être inconstants entre les navigateurs et les versions.
4 votes
Je comprends le problème, mais je ne contrôle pas nécessairement la génération des balises. Dans ce cas, je ne peux que modifier le style, pas la structure.
0 votes
Longue discussion sur la liste de diffusion du W3C : lists.w3.org/Archives/Public/www-style/2011Nov/