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?