Skip to content

Include all URLs in a Print Stylesheet

When a user prints a page of text, the URLs will be useless in that context. One way to improve this is to allow all the URLs in your page (or certain URLs) to be printed along with the text of the page. This ensures you can include all URLs in a print stylesheet. For example to add all URLs on the page in parentheses following a hyperlink, you can use this CSS:

@media print {
  a::after {
    content: " (" attr(href) ")";
  }
}
Code language: CSS (css)

You might also include other print-only styles in your @media print media query.

This makes use of the ::after pseudo-element along with the attr() function. The attr() function can be used to place any attribute’s value into the content property. This places the value of each <a> element’s href attribute directly “after” the <a> element’s content. This is similar to how pure CSS tooltips are made.

Of course, you might not want all links on a page printed. In that case, you can narrow your selector:

@media print {
  p > a::after {
    content: " (" attr(href) ")";
  }
}
Code language: CSS (css)

The above code will print only URLs for links that appear inside paragraphs.

Try this out using the CodePen below, which includes a button that shows the URLs live on the page:

Note: To the best of our knowledge, the information above and the snippet are accurate and up to date. However, in case you notice something wrong, please report snippet or leave a comment below.
View all Snippets
Louis Lazaris
Share:

0 Comments
Inline Feedbacks
View all comments

Or start the conversation in our Facebook group for WordPress professionals. Find answers, share tips, and get help from other WordPress experts. Join now (it’s free)!

0
Would love your thoughts, please comment.x