For better usability and user experience, any link a user clicks should be a web page link. If it’s not, there should be some indication. A good example of this is when the user encounters a PDF link.
To automatically add a PDF icon next to every PDF link on a given page, you can use the following CSS:
a[href$=".pdf"]::after {
content: url(pdf-icon.svg);
vertical-align: middle;
}
Code language: CSS (css)
This uses the “ends with” attribute selector, indicated by the $
symbol, along with the ::after
pseudo-element, applied to the a
element. This means only href
values on that end with the exact characters .pdf
will include the PDF icon.
You can see this demonstrated in the CodePen below:
Alternatively, if you don’t want to use an icon, you can simply add a bit of text as the content that’s included:
a[href$=".pdf"]:after {
content: " (PDF)";
}
Code language: CSS (css)
The above would add the letters “PDF” in parentheses next to each link, as the CodePen below demonstrates:
This can be done for any unusual file type (.DOCX, PPTX, etc.), simply replace the value in quotes in the attribute selector and adjust the content
property to include the correct icon. If you want the icon to appear at the start of the link, then switch to using the ::before
pseudo-element.
Cool. I try it with a svg. It shows the icon, but its huge. Any idea how to adjust the height of the svg icon?