Support for Cascading Style Sheets, Level 1
in
Microsoft Internet Explorer 3.0,
Win32 version


Purpose

The information on this page is intended as reference material for persons authoring pages with Cascading Style Sheets with the intention of making them viewable in Microsoft Internet Explorer 3.0. This page addresses the Windows 95/NT version of Internet Explorer. For similar information which addresses the Macintosh version, see Eric Meyer's page.

Notes on this revision

This is the first revision I've made to this page since I totally overhauled it with the new format. Here is a summary of the changes since the last revision:

This document attempts to reflect the state of the most recent release version of Internet Explorer, which, as of this revision, is version 3.02a. Its entire contents may not be applicable to previous versions of Internet Explorer 3.0.

Acknowledgements

Thanks to these persons for contributing ideas and information to this page.


Contents


Contents Contents 1 Basic concepts

Contents2 Pseudo-classes and pseudo-elements

Contents3 The cascade

Lack of support for a number of CSS features limits the amount of "cascading" required of Internet Explorer.

In addition to these deficiencies, Internet Explorer 3.0 seems altogether incapable of cascading. For instance, it will not combine (and duly cascade) styles included in either multiple STYLE blocks, or a combination of a linked style sheet and one or more STYLE blocks.

Contents4 Formatting model

Internet Explorer 3.01 (and presumably any subsequent versions of Internet Explorer 3.0) uses a simplified version of the CSS1 formatting model which lacks borders and padding. Further departures from the CSS1 formatting model (as they relate to specific properties) are noted in sections 5.2.7, 5.3.8, and 5.4.5.

In versions of Internet Explorer 3.0 prior to version 3.01, margins are not inherited. In those versions, margins values are always interpreted relative to the canvas, and not relative to any margin for any parent element.

5 Properties

5.1 Font Properties

Contents5.1.1 font-family

Supported: yes
Supported values: <family-name> | serif | sans-serif | monospace | cursive | fantasy
Unsupported values: [[<family-name> | <generic-family>],]* [<family-name> | <generic-family>]
Unsupported syntax:
  • Use of font names with whitespace is unsupported for inline styles. For example:

    <P STYLE="font-family: 'arial narrow'">

  • When using font names with whitespace, the property definition must be terminated with a semi-colon (;) in order for Internet Explorer to parse subsequent styles reliably.
  • When using an alternate font list, subsequent properties in the style may not be parsed reliably. A simple and harmless workaround is to make the font-family property the last property in the style.
Rendering errors: none

Contents5.1.2 font-style

Supported: yes
Supported Values: normal | italic
Unsupported Values: oblique
Unsupported syntax: none
Rendering errors: none

Contents5.1.3 font-variant

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.1.4font-weight

Supported: yes
Supported Values: normal | bold
Unsupported Values: bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900
Unsupported syntax: none
Rendering errors: none

Contents5.1.5 font-size

Supported: yes
Supported Values: xx-small | x-small | small | medium | large | x-large | xx-large | <length> | <percentage>
Unsupported Values: smaller | larger
Unsupported syntax: none
Rendering errors:

Percentage values are not applied correctly. Percentage should be based exclusively on the font size of the parent element. Internet Explorer calculates size based on the percentage of whatever the default font size for the element is. A couple of examples:

  1. Given the style:

    H1 { font-size: 100% }

    Text in the H1 element should be the same size as the BODY text. However, Internet Explorer interprets this as 100% of the default size of the H1 element; or, no change at all.

  2. Given the style:

    SUP { font-size: 70% }

    Text in the SUP element should be 70% of the size of text in the parent element. However, Internet Explorer scales the text in the SUP element down by default, based on the parent element. Internet Explorer applies this style to size text in the SUP element 70% of the already smaller size.

Contents5.1.6 font

Supported: yes
Supported Values: [ <font-style> || <font-variant> || <font-weight> ] <font-size> [ / <line-height> ] <font-family>
Unsupported Values: Limitations on the properties included in this shorthand property apply to it as well.
Unsupported syntax: none
Rendering errors: none

5.2 Color and Background Properties

Contents5.2.1 color

Supported: yes
Supported Values: <color>
Unsupported Values: none
Unsupported syntax: none
Rendering errors: none

Contents5.2.2 background-color

Supported: no
Supported Values*: <color>
Unsupported Values*: none
Unsupported syntax: n/a
Rendering errors: n/a

* Included as it pertains to the background property (5.2.7).

Contents5.2.3 background-image

Supported: no
Supported Values*: <URL>
Unsupported Values*: none
Unsupported syntax: n/a
Rendering errors: n/a

* Included as it pertains to the background property (5.2.7).

Contents5.2.4 background-repeat

Supported: no
Supported Values*: repeat | no-repeat | repeat-x | repeat-y
Unsupported Values*: none
Unsupported syntax: n/a
Rendering errors: n/a

* Included as it pertains to the background property (5.2.7).

Contents5.2.5 background-attachment

Supported: no
Supported Values*: scroll | fixed
Unsupported Values*: none
Unsupported syntax: n/a
Rendering errors: n/a

* Included as it pertains to the background property (5.2.7).

Contents5.2.6 background-position

Supported: no
Supported Values*: [top | center | bottom | <percentage>] || [left | center | right | <percentage>]
Unsupported Values*: <length> || <length>
Unsupported syntax: n/a
Rendering errors: n/a

* Included as it pertains to the background property (5.2.7).

Contents5.2.7 background

Supported: yes
Supported Values: <background-color> || <background-image> || <background-repeat> || <background-attachment> || <background-position>
Unsupported Values: see section 5.2.6
Unsupported syntax: This property is not applied to the BODY element when used from a linked style sheet.
Rendering errors:
  • Per the CSS1 specification, the default background for an element should be transparent, allowing the background of the parent element to "show through." This is not applied consistently in Internet Explorer: while all elements appear to show the background of the BODY element by default, this is not applied to parent-child relationships of other elements in the document. For example, given the styles:

    DIV { background: black }
    H1 { color: white }

    ... And the HTML code:

    <DIV>
    <H1>peas porridge hot</H1>
    </DIV>

    The text peas porridge hot should be white on a black background.

  • Backgrounds are not applied correctly to elements, save the BODY, TD, and TH elements. Per the CSS1 specification, an element's background should be applied to the entire "box" of the element, plus any padding and border (unless the border has its own color). Internet Explorer applies the background only behind text.
  • Values for background position are applied only to the BODY element.
  • Background images aligned along the bottom align with the bottom of text on the page, rather than the bottom of the browser window.
  • Background images aligned along the right of the page align with the rightmost margin of text on the page, rather than the right side of the browser window.

5.3 Text Properties

Contents5.3.1 word-spacing

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.3.2 letter-spacing

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.3.3 text-decoration

Supported: yes
Supported Values: none | underline | line-through
Unsupported Values: overline | blink | <combinations of two or more values>
Unsupported syntax: n/a
Rendering errors: none

Contents5.3.4 vertical-align

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.3.5 text-transform

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.3.6 text-align

Supported: yes
Supported Values: left | right | center
Unsupported Values: justify
Unsupported syntax: none
Rendering errors: none

Contents5.3.7 text-indent

Supported: yes
Supported Values: <length> | <percentage>
Unsupported Values: none
Unsupported syntax: none
Rendering errors: none

Contents5.3.8 line-height

Supported: yes
Supported Values: <length> | <percentage>
Unsupported Values: normal | <number>
Unsupported syntax: n/a
Rendering errors:
  • Values are incorrectly applied to the top and bottom of a text block.
  • Negative length values are rendered, rather than ignored; CSS1 does not allow negative values for this property.

5.4 Box Properties

Contents5.4.1 margin-top

Supported: yes
Supported Values: <length> | <percentage>
Unsupported Values: auto
Unsupported syntax: none
Rendering errors: see section 5.4.5

Contents5.4.2 margin-bottom

Supported: yes
Supported Values: <length> | <percentage>
Unsupported Values: auto
Unsupported syntax: none
Rendering errors: see section 5.4.5

Contents5.4.3 margin-right

Supported: yes
Supported Values: <length> | <percentage>
Unsupported Values: auto
Unsupported syntax: none
Rendering errors: none

Contents5.4.4 margin-left

Supported: yes
Supported Values: <length> | <percentage>
Unsupported Values: auto
Unsupported syntax: none
Rendering errors: none

Contents5.4.5 margin

Supported: yes
Supported Values: [<length> | <percentage>] || [<length> | <percentage>] || [<length> | <percentage>] || [<length> | <percentage>]
Unsupported Values: auto || auto || auto || auto
Unsupported syntax: none
Rendering errors: When top and bottom margins of two different elements meet, they should "collapse," leaving only the larger of the two values. Instead, both values are applied. (see section 4.1.1 of the Cascading Style Sheets, Level 1, specification)

Contents5.4.6 padding-top

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.7 padding-right

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.8 padding-bottom

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.9 padding-left

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.10 padding

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.11 border-top-width

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.12 border-right-width

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.13 border-bottom-width

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.14 border-left-width

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.15 border-width

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.16 border-color

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.17 border-style

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.18 border-top

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.19 border-right

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.20 border-bottom

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.21 border-left

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.22 border

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.23 width

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.24 height

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.25 float

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.4.26 clear

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

5.5 Classification Properties

Contents5.5.1 display

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.5.2 white-space

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.5.3 list-style-type

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.5.4 list-style-image

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.5.5 list-style-position

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

Contents5.5.6 list-style

Supported: no
Supported Values: n/a
Unsupported Values: n/a
Unsupported syntax: n/a
Rendering errors: n/a

6 Units

Contents6.1 Length units

Supported units:
  • px
  • pt
  • pc
  • mm
  • cm
  • in
Unsupported units:
  • em
  • ex

Contents6.2 Percentage units

Percentage units are supported as described in the CSS1 specification.

Contents6.3 Color units

Supported notation:
  • <six-digit RGB hexadecimal>
  • <three-digit RGB hexadecimal>
Unsupported notation:
  • <functional, using integers>
  • <functional, using percent>

Contents6.4 URL

Internet Explorer supports the functional notation for URLs described in the CSS1 specification, with the following exceptions:


Braden N. McDaniel
braden@endoframe.com
21 September, 1997