Setting the default style sheet language on your Web site
Very often Web creators are using an external style sheet, or a style element to add style information to their html pages. By doing, we specify what is the style language used in the Web page. For example using the `link` element.
<link href="cute.css" rel="stylesheet" type="text/css"/>
But if your page is using the style
attribute, the user agent may not know what is the language used for styling. This is a principle of orthogonality. A company could launch a user agent with a new style language and a new mime-type. It will be difficult to impose and ensure interoperability because of the deployment base, but it is still possible.
If you want to set up a default style sheet language for your Web site, there are a few choices. You can use a meta name in each of your page:
<meta http-equiv="Content-Style-Type" content="text/css"/>
or you can specify an HTTP header:
Content-Style-Type: text/css
With Apache http server 2.0, you can use mod_headers and mod_setenvif in the general configuration file or at a directory level in .htaccess
:
SetEnvIf response Content-Type [text/html|application/xhtml+xml] html-content=1
Header add "Content-Style-Type: text/css" env=html-content
PS: mod_headers and mod_setenvif are not activated in the base configuration of Apache httpd, you have to activate them.
Examples given for xhtml documents served as application/xhtml+xml
<p>It is probably worth fixing the code examples to make them conform to Appendix C of XHTML 1.0. The space before the / is missing.</p><p>I also suggest removing the word 'only' from second paragraph. Linking to a style sheet written in one language doesn't mean that the style attributes are going to be using the same language, does it?</p><p>You might also want to link to <a href="http://www.w3.org/TR/html4/present/styles.html#h-14.2.1" rel="nofollow">the relevant section of the specification</a>.</p>
<p>Hi David,</p><p>I have added a PS explaining the examples were XHTML served as application/xhtml+xml.</p><p>And fixed the only. Note that the user agents default to text/css anyway.</p>
<p>so no need to do this if i'm using content="text/html;</p>
<p><p>I can't get this to work in Apache 2.2 (Debian). <a href="http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html" rel="nofollow">Apache documentation</a> doesn't list <pre>response</pre> as an acceptable attribute for <pre>SetEnvIf</pre> and <a href="http://httpd.apache.org/docs/2.2/mod/mod_headers.html" rel="nofollow">recommends against the use of <pre>add</pre></a> with <pre>Header</pre>.</p><p><p>A simple:<br /> Header set Content-Style-Type text/css<p>Works to add the header to all content. Will it do any harm to send the header on non-HTML content?</p><br /></p></p></p>