O'Reilly

Optimize Your Links For Print Using CSS — Show The URL

By on  

When moving around from page to page in your trusty browser, you get the benefit of hovering over links and viewing the link's target URL in the status bar. When it comes to page printouts, however, this obviously isn't an option. Most website printouts simply show the link as text with an underline. What good is that?

Providing URLs for links in the print version of your page can be extremely helpful to the reader. Using a small snippet of CSS code, you can get printouts to display link URLs right next to the link text.

The CSS Code

a:link:after, a:visited:after { content:" [" attr(href) "] "; }

The pitfall of this method of displaying links URLs for print is that Internet Explorer ignores this code. If showing link URLs is critical, I'd recommend using a JavaScript alternative. If not, add this snippet to your print stylesheet to make your page print-outs more informative.

Track.js Error Reporting

Recent Features

  • fetch API

    One of the worst kept secrets about AJAX on the web is that the underlying API for it, XMLHttpRequest, wasn't really made for what we've been using it for.  We've done well to create elegant APIs around XHR but we know we can do better.  Our effort to...

  • Detect DOM Node Insertions with JavaScript and CSS Animations

    I work with an awesome cast of developers at Mozilla, and one of them in Daniel Buchner. Daniel's shared with me an awesome strategy for detecting when nodes have been injected into a parent node without using the deprecated DOM Events API....

Incredible Demos

  • MooTools Window Object Dumping

    Ever want to see all of the information stored within the window property of your browser? Here's your chance. The XHTML We need a wrapper DIV that we'll consider a console. The CSS I like making this look like a command-line console. The MooTools JavaScript Depending on what you have loaded...

  • Table Cell and Position Absolute

    If you follow me on Twitter, you saw me rage about trying to make position: absolute work within a TD element or display: table-cell element.  Chrome?  Check.  Internet Explorer?  Check.  Firefox?  Ugh, FML.  I tinkered in the console...and cussed.  I did some researched...and I...

Discussion

  1. I´ve been reading your blog and CSS zone for a couple of weeks and I have to say that you work is pretty amazing.
    Due to my work I don’t have enough time to mantain my website, but the day that I come back to design my site or blog, I’ll check your tricks, these are really good.

    Keep working that way, you’re a VERY helpful resource for people like me. ;)

    Cheers

  2. Great one.

  3. Great tips !
    Thanks a lot :D

  4. Good trick for printing a web page. But as usual, this simple tricks are not working with internet explorer

  5. Реализация битых, аварийных и подержанных автомобилей. Продать автомобиль – срочный выкуп подержанных автомобилей. Можно после ДТП.
    магазин автозапчастей мерседес
    http://gava.ru

  6. Выбираем отделочные материалы линолеум продам линолеум калуга ковролин brintons Оставьте вашу заявку и вам ответят! мытищи линолеум ковролин синтерос
    Ковровые покрытия для гостиниц ковролин выстовочный коллекции линолеума линолеум terrana top
    http://kovroliny.ru

  7. I figured out how to get around this not working in IE6 and IE7 by using jQuery and a couple of proprietary IE events to show the link when printing. Any interest in porting it to mootools?

    http://beckelman.net/post/2009/02/16/Use-jQuery-to-Show-a-Linke28099s-Address-After-its-Text-When-Printing-In-IE6-and-IE7.aspx

  8. The stuff on this web site is really witty and cool wise

  9. visit

    I happened upon this site while following the links from another site. Your site is wonderful and i bookmarked it. Thank your for the hard work you must have put in to create this wonderful facility. Keep up the excellent work

  10. I love everything about this site!!

  11. Steven Schrab

    This is exactly what I was looking for. Thanks!

  12. Alok

    Is there something I can do as an end-user to print the links when printing a webpage? The CSS method (as well as jQuery method posted by Bill in a comment) seems to be intended for the author of the web page. How do I do this as an end-user given that the author has not done this? I could not find any Firefox add-on that does this.

  13. Alok

    Is there something I can do as an end-user to print the links when printing a web-page? The CSS method (as well as jQuery method posted by Bill in a comment) seems to be intended for the author of the web page. How do I do this as an end-user given that the author has not done this? I could not find any Firefox add-on that does this.

  14. Pravin

    Hi all I want to know …How can we avoid printing url and dates and page no from print window

  15. Robbiego

    Thanks for this simple trick. Works great.

  16. Alok

    This tool allows inserting the CSS into any web page when the page author did not.

    http://readable.tastefulwords.com/

    Checkout the option “More CSS” and use the specified CSS:

    a:link:after, a:visited:after { content:” [” attr(href) “] “; }

  17. Alok

    This custom CSS works still better:

    a:after {content: ” [” attr(href) “]”; color:blue;}
    a:link {color: #800000; text-decoration: none;}
    a:visited {color: #800000; text-decoration: none;}
    a:hover {color: #000000; text-decoration: underline;}

  18. why not simply:

    a:after { content:" [" attr(href) "] "; }

    • Because it would show empty parens for anchors, try with the current page ;)

  19. Chirag

    Thank you!

  20. Thanks for this article. It’s exactly what I needed to figure out how to suppress this on our site. Now at least I know what to look for in debugging the URLs being printed.

  21. Thats very good I hide it because my customers need print invoice without links:

    @media print
    {
    a:after {  display:none;}
    }
    

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!

Recently on David Walsh Blog

  • OSCON Portland:  Conference  Discount!

    O'Reilly puts on the best web industry conferences in the world.  These conferences include Fluent Conference, Velocity Conference, and the upcoming OSCON in Portland, Oregon from July 20-24.  Open Source Convention (OSCON) is a conference that focuses specifically on open source developers and the tools and possibilities...

  • Follow Redirects with cURL

    I love playing around with cURL. There's something about loading websites via command line that makes me feel like some type of smug hacker, just like tweeting from command line does. I recently cURL'd the Google homepage and saw the following: I found it weird that Google...

  • Developers Have WordPress, Amateurs Have Squarespace, Professional Designers Have the NEW Webydo!

    Web design platforms have traditionally come in one of two varieties. There are the solutions like WordPress and Drupal that are incredibly powerful, but an understanding of web development and coding is required to be able to use those platforms effectively. On the other side of the...

  • Chris Coyierâs Favorite CodePen Demos II

    Hey everyone! Before we get started, I just want to say it’s damn hard to pick this few favorites on CodePen. Not because, as a co-founder of CodePen, I feel like a dad picking which kid he likes best (RUDE). But because there is just so...

  • GSAP + SVG For Power Users: Motion Along A Path

    Now that the GreenSock API is picking up steam, there are many tutorials and Getting Started guides out there to provide good introductions to the library, not to mention GreenSock’s own Forum and Documentation. This article isn’t intended for beginners, but rather a...