Published under a Creative Commons license.
Basic Concepts |
|||
1.1 | Containment in HTML @import |
WinIE4 and WinIE5 both import files even when the @import statement is at the end of the document stylesheet. This is technically in violation of the CSS1 specification, although obviously not a major failing; thus the "Quirk" rating. |
Spec. Suite |
1.1 | Containment in HTML |
Navigator 4 has particular trouble with list items, which is most of the reason for the B. |
Spec. Suite |
1.3 | Inheritance |
Navigator 4's inheritance is unstable at best, and fatally flawed at worst. It would take too long to list all occurrences, but partiularly troublesome areas include tables and lists. |
Spec. Suite |
1.4 | Class selector |
WinIE4/5 allows class names to begin with digits; this is not permitted under CSS1. |
Spec. Suite |
1.5 | ID selector |
WinIE4/5 allows ID names to begin with digits; this is not permitted under CSS1. All browsers apply the style for a given ID to more than one instance of that ID in an HTML document, which is not permitted. This is properly an error-checking problem, and not a failing of the CSS implementations, but I feel it is significant enough to warrant the ratings shown. |
Spec. Suite |
1.6 | Contextual selectors x y z {dec;} |
MacNav4 has the most trouble with contextual selectors involving tables. For example, |
Spec. Suite |
Pseudo-Classes and Pseudo-Elements |
|||
2.3 | first-line | IE3 incorrectly applies :first-line styles to the entire element. | Spec. Suite |
2.4 | first-letter | IE3 incorrectly applies :first-letter styles to the entire element. | Spec. Suite |
The Cascade |
|||
3.2 | Cascading Order |
Again, there are simply far too many instances of problems to list here. |
Spec. Suite |
Font Properties |
|||
5.2.2 | font-family cursive |
Despite a preferences setting for cursive fonts, Opera does not seem to apply the perference, but instead substitutes another font. |
Spec. Suite |
5.2.4 | font-variant small-caps |
IE4/5 approximates the |
Spec. Suite |
5.2.6 | font-size xx-small - xx-large |
IE4/5's values for absolute sizes assigns |
Spec. Suite |
Color and Background Properties |
|||
5.3.2 | background-color |
Nav4 does not apply the background color to the entire content box and padding, but rather just to the text in the element. This can be worked around by declaring a zero-width border. |
Spec. Suite |
5.3.2 | background-color transparent |
Nav4 insists on applying this value to the parent of an element, not the element itself. This can lead to 'holes' in the parent element's background. Opera 4 has a bug which only shows up when a background has been repeated, and the rest of the background of the element is transparent (either by default or when explicitly declared). Scrolling the element "offscreen" and then bringing it back can cause "holes" to be punched through the repeated images of ancestor elements, thus creating visual anomalies. |
Spec. Suite |
5.3.4 | background-repeat repeat |
WinIE4 only repeats down and to the right. The correct behavior is for the background image to be tiled in both vertical directions for |
Spec. Suite |
5.3.4 | background-repeat repeat-x |
WinIE4 only repeats to the right, instead of both left and right. |
Spec. Suite |
5.3.4 | background-repeat repeat-y |
WinIE4 only repeats down, instead of both up and down. |
Spec. Suite |
5.3.7 | background | Navigator 4.x is legendary for its inability to correctly render backgrounds. If there is no border around an element, then the background will only be visible behind the text of the element, instead of throughout the entire content-area and padding. Unfortunately, if a border is added then there will be a transparent gap between the content-area and the border itself. This is not the padding, and there is no way to get rid of the gap. | Spec. Suite |
Text Properties |
|||
5.4.3 | text-decoration none |
According to the specification, if an element is is decorated, but one of its children is not, the parent's effect will still be visible on the child; in a certain sense, it "shines through." Thus, if a paragraph is underlined, but a
In practice, however, setting an inline element to |
Spec. Suite |
5.4.3 | text-decoration blink |
Since this value is not required under CSS1, only Navigator supports it (surprise). |
Spec. Suite |
5.4.5 | text-transform uppercase |
Opera 3.6 uppercases the first letter in each inline element within a word, which (according to the CSS1 Test Suite) it should not do. |
Spec. Suite |
5.4.6 | text-align justify |
In Nav4, this value has a tendency to break down in tables, but generally works in other circumstances. |
Spec. Suite |
5.4.8 | line-height |
Nav4 incorrectly permits negative values for this property. |
Spec. Suite |
5.4.8 | line-height | Opera 3.6 applies background colors to the space between lines, as opposed to just the text itself, when the background is set for an inline element within the text. (See the CSS1 Test Suite for more details.) | Spec. Suite |
Box Properties |
|||
5.5.01 | margin-top | All margin properties seem to be problematic, or else completely unsupported, on inline elements; see 'margin' for details. | Spec. Suite |
5.5.02 | margin-right | All margin properties seem to be problematic, or else completely unsupported, on inline elements; see 'margin' for details. Opera 4 sometimes applies right margins to all of the boxes of an inline element, not just the last one. This seems to come and go somewhat randomly, but it is common enough to be easily noticeable. | Spec. Suite |
5.5.03 | margin-bottom | All margin properties seem to be problematic, or else completely unsupported, on inline elements; see 'margin' for details. | Spec. Suite |
5.5.04 | margin-left | All margin properties seem to be problematic, or else completely unsupported, on inline elements; see 'margin' for details. Opera 4 sometimes applies left margins to all of the boxes of an inline element, not just the first one. This seems to come and go somewhat randomly, but it is common enough to be easily noticeable. | Spec. Suite |
5.5.05 | margin | All margin properties seem to be problematic, or else completely unsupported, on inline elements. In the case of 'margin', support is pretty good on block-level elements in IE4/Win and IE5/Win, while with inline elements, IE4/Win and IE5/Win ignore this property completely. IE5/Mac correctly honors margins on all elements. Navigator 4.x does fairly well so long as margins are not applied to floating or inline elements, in which case major bugs can be tripped. Opera 4's problems with correctly applying right and left margins to inline elements seems to get worse with 'margin'. | Spec. Suite |
5.5.06 | padding-top | All padding properties seem to be problematic, or else completely unsupported, on inline elements; see 'padding' for details. | Spec. Suite |
5.5.07 | padding-right | All padding properties seem to be problematic, or else completely unsupported, on inline elements; see 'padding' for details. | Spec. Suite |
5.5.08 | padding-bottom | All padding properties seem to be problematic, or else completely unsupported, on inline elements; see 'padding' for details. | Spec. Suite |
5.5.09 | padding-left | All padding properties seem to be problematic, or else completely unsupported, on inline elements; see 'padding' for details. | Spec. Suite |
5.5.10 | padding | All padding properties seem to be problematic, or else completely unsupported, on inline elements. Opera 3.6 correctly ignores negative padding values, but will alter the line-height based on values of 'padding' applied to inline elements, which is incorrect. IE4/Win and IE5/Win will honor padding assignments on block-level elements, but not inline elements. Navigator 4.x does fairly well so long as padding is not applied to floating or inline elements, in which case major bugs can be tripped. | Spec. Suite |
5.5.11 | border-top-width | Navigator will create visible borders even when no 'border-style' is set, and does not set borders on all side when a style is set. Things get really ugly when borders are applied to inline styles. IE4 and IE5 correctly handle borders on block-level elements, but ignore them for inlines. | Spec. Suite |
5.5.12 | border-right-width | Navigator 4.x will create visible borders even when no 'border-style' is set, and does not set borders on all side when a style is set. Things get really ugly when borders are applied to inline styles. IE4 and IE5 correctly handle borders on block-level elements, but ignore them for inlines. | Spec. Suite |
5.5.13 | border-bottom-width | Navigator 4.x will create visible borders even when no 'border-style' is set, and does not set borders on all sides when a style is set. Things get really ugly when borders are applied to inline styles. IE4 and IE5/Win correctly handle borders on block-level elements, but ignore them for inlines. | Spec. Suite |
5.5.14 | border-left-width | Navigator will create visible borders even when no 'border-style' is set, and does not set borders on all sides when a style is set. Things get really ugly when borders are applied to inline styles. IE4 and IE5 correctly handle borders on block-level elements, but ignore them for inlines. | Spec. Suite |
5.5.15 | border-width | Navigator will create visible borders even when no 'border-style' is set, and does not set borders on all side when a style is set. Things get really ugly when borders are applied to inline styles. IE4 and IE5 correctly handle borders on block-level elements, but ignore them for inlines. | Spec. Suite |
5.5.16 | border-color | Navigator 4.x and Opera 3.6 do not set colors on individual sides, as in 'border-color: red blue green purple'. Explorer cannot apply border colors to inilne elements, since it does not apply borders to inlines, but this is not penalized here. | Spec. Suite |
5.5.17 | border-style | Navigator 4.x does not reset the 'border-width' to zero if 'border-style' is 'none', but instead incorrectly honors the width setting. | Spec. Suite |
5.5.18 | border-top | Opera does not apply border styles to table elements, which is the reason for the "P" rating. IE4 and IE5 do not apply borders to inline elements. | Spec. Suite |
5.5.19 | border-right | Opera does not apply border styles to table elements, which is the reason for the "P" rating. IE4 and IE5 do not apply borders to inline elements. | Spec. Suite |
5.5.20 | border-bottom | Opera does not apply border styles to table elements, which is the reason for the "P" rating. IE4 and IE5/Win do not apply borders to inline elements, which is the reason for those "P" ratings. | Spec. Suite |
5.5.21 | border-left | Opera does not apply border styles to table elements, which is the reason for the "P" rating. IE4 and IE5 do not apply borders to inline elements. | Spec. Suite |
5.5.22 | border | Opera 3 does not apply border styles to table elements, which is the reason for the "P" rating. IE4 and Win/IE5 do not apply borders to inline elements, which is the reason for those "P" ratings. Opera 5 has an odd, semi-random bug that cuases it to improperly place the border around the first inline element (or part thereof) in the document. The border is drawn too high, making it appear as though the border has been "superscripted" while the content remains where it should. | Spec. Suite |
5.5.23 | width | Navigator 4.x applies 'width' in a very inconsistent fashion, but appears to honor it on most simple text elements and images. WinIE4/5 applies it to images and tables, but ignores it for most text elements such as P and headings. Opera 3.6, weirdly, seems to set the width of images to 100%-- but this is largely an illusion, since minimizing the window and then maximizing it again will reveal correctly-sized images. | Spec. Suite |
5.5.25 | float | 'float< is one of the most complicated and hardest-to-implement aspects of the entire specification. Basic floating is generally supported by all browsers, especially on images, but when the specification is closely tested, or the document structure becomes complicated, floating most often happens incorrectly, or not at all. The floating of text elements is especially inconsistent, although IE5 and Opera have cleaned up their act to alarge degree, leaving WinIE4 and Nav4 the major transgressors in this respect. Authors should use 'float' with some care, and thoroughly test any pages employing it with great care. Opera 4 seems to place floated elements a little bit off from where the "ideal" place would seem to be, but in general, its support is extremely robust and can generally be counted upon. | Spec. Suite |
5.5.26 | clear | Like 'float', 'clear' is not a simple thing to support. There is typically basic support, but as things get more complicated, browser behavior tends to break down. Thoroughly test pages using this property. | Spec. Suite |
Classification Properties |
|||
5.6.1 | display inline |
Opera 3.6 almost gets |
Spec. Suite |
5.6.3 | list-style-type none |
MacNav4 displays question marks for bullets when using this value. |
Spec. Suite |
5.6.5 | list-style-position inside |
The positioning and formatting of list-items when set to this value are a bit odd under MacIE4. |
Spec. Suite |
Units |
|||
6.1 | Length Units ex |
All supporting browsers appear to calculate |
Spec. Suite |
6.3 | Color Units |
Navigator will generate a color for any apparent keyword. For example, |
Spec. Suite |
6.4 | URLs |
Navigator determines relative URLs with respect to the HTML document, not the stylesheet. |
Spec. Suite |