I was under the assumption that a print stylesheet would not get loaded when in the “screen” context, however, the stylesheet is still loading in Chrome (windows). Is this a bug, am I tripping, or is my assumption incorrect that “print” should not load?

Here is my html:
<head>
<link rel="stylesheet" href="all.css" type="text/css" media="all">
<link rel="stylesheet" href="screen.css" type="text/css" media="screen">
<link rel="stylesheet" href="print.css" type="text/css" media="print">
</head>
Using Chrome 24.0.1312.52 m (latest)
This is not a bug. When you link to a stylesheet in the DOM it will make a server request and download it. The
media=screen,media=printetc are conditions that apply ONLY to the styles inside the stylesheet – so you will never see your print.css styles applied on your screen (and vice-versa). It will not prevent your stylesheet from being loaded though. Now some browsers are known to defer the loading when you specifymedia=print, so that your page renders first and then the print.css is loaded – but not all browsers do that.This blog entry here by Crisp, explains how you can lazy-load your print stylesheet using javascript. This makes it so that it loads only when the user needs to print, unfortunately the method he uses (the
window.onbeforeprintis only supported in IE and Firefox – http://www.w3schools.com/tags/ev_onbeforeprint.asp).