IE5.0/Windows Band Pass Filter

This paragraph should have green text in all browsers that support even a little CSS. However this paragraph will have a orange background in IE5.0/Windows from the @imported style sheet "ie50winbandpassbefore.css" at the start of the inline style sheet, and a thick maroon border from the @imported style sheet "ie50winbandpassafter.css" at the end of the inline style sheet.


band pass filter
A filter which transmits energy in a specified wavelength band but rejects energy above and below.


In this case, the IE5.0/Windows Band Pass Filter is a filter which passes external style sheets to version 5.0 Internet Explorer for Windows browsers, but not to earlier/older browsers, nor to newer / more modern browsers.


Here is the inline style sheet for this page:

@media tty {
 i{content:"\";/*" "*/}}; @import 'ie50winbandpassbefore.css'; {;}/*";}
}/* */

p.test { color:green; padding:1em }
strong { color:black; background:#fff; padding:0 2px; margin:-2px }

@media tty {
 i{content:"\";/*" "*/}}; @import 'ie50winbandpassafter.css'; {;}/*";}
}/* */


This works using the same IE5.x/Windows escaped quote parsing bug that the box model hack, high pass filter and inline high pass filter take advantage of. In addition there is a ";" immediately preceding each @import which is both necessary for IE5.0 to recognize the @imports and causes IE5.5 to ignore the @imports.

The IE5.0/Windows Band Pass Filter can be used to import styles exclusively to IE5.0/Windows to apply either before or after other style rules, as demonstrated by the style sheets ie50winbandpassbefore.css and ie50winbandpassafter.css.

Version 4 (and earlier) browsers are filtered out and do not import either of the style sheets since they are imported using the single quotes without url() method.

Compliant CSS1 browsers ignore the contents of the unknown @media rules.

Compliant CSS2(.1) browsers parse the @media rules, but see only a single rule that sets the 'content' property of the presentational <i> tag to the string:

";/* */}}; @import 'ie50winbandpassbefore.css'; {;}/*

(or 'ie50winbandpassafter.css' in the second case) where that leading double quote (") and trailing apparent comment start (/*) are actually both inside the literal string. And this rule will never be applied for all intents and purposes because so far no one has built a compliant CSS2(.1) browser that renders to the "tty" medium.


As a result of this style sheet filtration process, the imported style sheet(s) will only be seen, retrieved and applied by the following:

And thus these "lower-end" browsers will not:

And neither will these "higher-end" browsers:


Compliant browsers don't waste any time at all fetching a separate file, unlike the high pass filter where they fetch the empty "null" external style sheet. Only IE5.0/Windows has to spend the time fetching the IE5.0/Windows band pass style sheets which can be used to send that browser extra "fix-up" style rules to work around any of its specific quirks or short-comings.

Valid XHTML 1.0 Strict. Valid CSS.

Creative Commons License This web page is licensed under a Creative Commons License.