MIME types and stylesheets

Web servers send a HTTP response header named "Content-Type" that specifies the MIME-type of the file that is being sent. For security and standards-compliance reasons, style sheets should be delivered with the "text/css" MIME type.

  • Starting with IE9 Standards mode, style sheets will be ignored (not applied) unless they are delivered with a "text/css" MIME type.
  • In all document modes, style sheets will be ignored if the style sheet is delivered with the "X-Content-Type-Options: nosniff" header and the style sheet is not delivered with the "text/css" MIME type.
  • In all document modes (and in legacy browser versions) style sheets delivered from a cross-origin context (for example, example.com uses a style sheet from microsoft.com) will be ignored unless the style sheet is delivered with the "text/css" MIME type.

If a style sheet is ignored due to an incorrect MIME type, your site may fail to render as expected. Text, images, or other features may lack the desired styling.

If a style sheet is ignored because it does not bear the correct MIME type, a notification will be logged in the Windows Internet Explorer 9 F12 Developer Tools console.

Ensure that all style sheets are delivered with the proper HTTP response header: "Content-Type: text/css".

If you find any sites that are sending improper MIME types and behave incorrectly in Windows Internet Explorer, please file a bug on Connect.

The following sample demonstrates this behavior by using an external stylesheet to declare a style to be applied to a span element. When the test passes, the span element is hidden by a style rule declared in the external file.

<!doctype html>
<html>
<head>
  <title>External CSS Mime Type Test</title>
  <link rel="stylesheet" type="text/css" href="./styles.txt">
</head>
<body>

<h1>External Stylesheet MIME Type Test</h1>
<p>This tests MIME type support for external stylesheets.  If the word "not" appears in the next line, the test has failed (or has not been set up correctly).</p>

<p>Result: The test did <span id="result">not </span> pass.</p>

</body>
</html>

To properly test the behavior, save the following to a file named "styles.txt" in the same directory as the sample HTML file:

#result {
 display: none;
}

Content updated September 2014.