|
|||||||
|
|||||||
|
Section A - Bugs relating to attaching style to pages (6 bugs).
Section B - Bugs relating to associating style with elements (8 bugs).
Section C - Bugs relating to key concepts (7 bugs).
Section D - Bugs with units (1 bug).
Section E - Color and background bugs (5 bugs).
Section H - Margin and padding bugs (1 bugs)
Section I - Border bugs (2 bugs)Section J - Float bugs (3 bugs)
Section K - Display and white-space bugs (13 bugs)
Section L - Table bugs (5 bugs)
Section N - Form bugs (2 bugs)
Section O - List item bugs (8 bugs)
Section P - Error correction bugs (54 bugs)
Total bugs = 6 + 8 + 7 + 1 + 5 + 10 + 15 + 1 + 2 + 6 + 15 + 5 + 3 + 4 + 10 + 59 = 137.
The hidden border style (and indeed all other styles that are unbeknownst to Opera - all future border styles) is destroyed by applying the border as a transparent border, overriding the border color.
Opera does not allow you to specify transparent borders.
Given the following code:
<div style="font-size: 22px; line-height: 22px; text-align: right">
<img src="green.gif" vspace=0 width="200" height="52" style="float: left">
<span style="background: red">This text</span>
</div>
rather than attempting to place the text next to the image as it should, failing at this and then moving it down a line box at a time (and thus moving it to the first empty line box, which is 22 * 3 = 66 pixels down), it instead places it below the bottom of the image - 52 pixels down.
Although non-floating block elements should flow around both sides of a floated inline element, Opera only makes them flow on one side. For example:
<p style="margin-right: 100px">
Text<IMG src="stars.gif" style="float: right">
<P>
This text should flow around the image - text should flow around with some to the image's left and
some to its right - effectively two lines, one on each side of the image. This text should flow
around the image - text should flow around with some to the image's left and some to its right -
effectively two lines, one on each side of the image. This text should flow around the image - text
should flow around with some to the image's left and some to its right - effectively two lines, one
on each side of the image. This text should flow around the image - text should flow around with
some to the image's left and some to its right - effectively two lines, one on each side of the
image. This text should flow around the image - text should flow around with some to the image's
left and some to its right - effectively two lines, one on each side of the image. This text should
flow around the image - text should flow around with some to the image's left and some to its right
- effectively two lines, one on each side of the image.
Text.
This text should flow around the image - text should flow around with some to the image's left and some to its right - effectively two lines, one on each side of the image. This text should flow around the image - text should flow around with some to the image's left and some to its right - effectively two lines, one on each side of the image. This text should flow around the image - text should flow around with some to the image's left and some to its right - effectively two lines, one on each side of the image. This text should flow around the image - text should flow around with some to the image's left and some to its right - effectively two lines, one on each side of the image. This text should flow around the image - text should flow around with some to the image's left and some to its right - effectively two lines, one on each side of the image. This text should flow around the image - text should flow around with some to the image's left and some to its right - effectively two lines, one on each side of the image.
Similarly:
Text.
This text should flow around the image - text should flow around with some to the image's left and some to its right - effectively two lines, one on each side of the image. This text should flow around the image - text should flow around with some to the image's left and some to its right - effectively two lines, one on each side of the image. This text should flow around the image - text should flow around with some to the image's left and some to its right - effectively two lines, one on each side of the image. This text should flow around the image - text should flow around with some to the image's left and some to its right - effectively two lines, one on each side of the image. This text should flow around the image - text should flow around with some to the image's left and some to its right - effectively two lines, one on each side of the image. This text should flow around the image - text should flow around with some to the image's left and some to its right - effectively two lines, one on each side of the image.
The problem is not a common one - it only occurs when text should flow on both sides of a float.
Opera treats 'clear' on it as giving the BR sufficient margin-top such that the first line box is below the previous float, which is incorrect, since BR is not a block-level element - the effect of clear on BRs is to create sufficient line boxes to move it below previous floats.
Opera 4 doesn't allow text-align to work on display: compact.
Opera 4 doesn't allow background to work on display: compact when the element has a non-zero margin-top (as, for example, is typical with P).
Opera 4 'reverse inherits' inheritable properties into display: compact.
Thus 'color' on an element following a compact box would be applied to the compact box. To override this, you can simply set the property on the compact box.
Opera 4 will only run-in boxes when the elements are adjacent siblings. Thus <DIV><DIV style="display: compact"></DIV></DIV><P>Should follow on would not run-in. This is incorrect since boxes should run-in to the next block box (including anonymous).
Opera 4 does not run-in boxes to floated boxes correctly. See http://richinstyle.com/test/boxes/runin.html
All ordered list types render the number '1.' (or the equivalent (such as a.)) on display: list-item. Thus instead of P {display: list-item} rendering 1, 2, 3, it instead renders '1.'.
Opera's support for 'auto' is non-existent. Instead it prefers to throw the image to odd locations, not render at all or worse. There is a test page that demonstrates this. The effect of this is that you must only use the 'top' and 'left' properties - never 'right' or 'bottom' (since to use these requires that you set left or top respectively to auto), and that you must always set both of left and top to non-'auto' values.
Opera does not get the height of absolutely positioned elements correct. Although it (unfortunately - I believe the spec is suboptimal) follows the spec insofar as it makes the height of absolutely positioned elements with height: auto equal to that from the top of the element to the bottom of the viewport to a certain extent, it does not do entirely - it seems, for example, to give different amounts of document painted depending on where the element is in the markup. See a test page, where the two different elements extend different distances down the page.
Opera 4's support for fixed positioning is completely broken. See:
Opera does not support content: url().
Opera's support for z-index is buggy. See http://richinstyle.com/test/positioning/zindex.html
Opera does not support the 'avoid' value of page-break-before or page-break-after.
There are currently two bugs very serious printing bugs in Opera. Although these are not CSS-related, they make testing difficult or impossible in some cases. These bugs are:
Thus orphans and widows might be supported, but this cannot be verified at present.
Opera only supports the 'hidden' value of overflow - not any other value (except hidden, which applies automatically).
Opera fails to inherit text-align and font-size into table cells, instead applying text-align: left and font-size: DefaultValue.
Opera destroys padding on table rows by applying it as a kind of absolute positioning statement on the content of the tables. Thus for example <TABLE border><TR style="padding: 10px"> would result in the row being 'positioned' outside the TABLE border.
Note that this bug is applied in exactly the same way as margin is (incorrectly) applied to table rows.
Even though CSS has greater specificity than HTML (later order if used with the universal selector), Opera does not allow TABLE {border: none} to override the border attribute on <TABLE>.
Although CAPTIONs are descendants of tables (but not inside their block), Opera doesn't inherit styles to them, so TABLE {color: red} won't affect the color of the CAPTION. It does treat them as descendants for contextual selectors (e.g., TABLE CAPTION {color: red}) however, so you can avoid this bug in that way.
To set the color of horizontal rules using CSS in Opera, it is necessary to use the background property.
Opera allows text-align to affect HR, which is incorrect since HR is a block-level element and text-align affects only inline-level content.
Even though Opera applies horizontal rules as a border, with the exception of border-color, the border properties have no effect on it. As a result, you are probably best off using HTML to set the characteristics of horizontal borders.
Try the following code:
<div style="float: left; margin-top: 0; background: yellow; width: 50%; height: 100px">
</div>
<HR style="margin-top: 100px">
The top of the HR should be below the DIV, but won't be in Opera.
Style doesn't work on form elements in Opera, except for FORM itself, borders, horizontal margins (not vertical), on INPUT type="image" and about a 1 pixel wide glitchy bit (between the text box and the browse button) when color is set on INPUT type="text".
On form elements Opera treats run-in as block. This is useful in a way, since it doesn't support block, so this a workaround.
Although the CSS specification states that list numbers should be a, b, c; 1, 2, 3, Opera renders a., b., c. instead.
Although the list-style property should reset all unset values to their initial value, in Opera i does not. For example, list-style-image: url(image.gif); list-style: decimal should reset the image, but doesn't.
Note this is not a serious bug and will never occur in practice.
Opera does not float list items correctly, failing to float the marker box to the left of the float but instead having them associated with the content.
Given, for example, <LI><P style="color: red">, the list marker of the LI would be red. This wouldn't apply if the P was preceded by anonymous content or un-inheritably styled block-level elements.
Although the baseline of marker boxes, if the principal box lacks textual content, should be aligned with the top content edge of the principal box (the spec says that it should be aligned with the top outer edge, but this is wrong, and in any case Opera doesn't do this either), Opera instead aligns it with the baseline. E.g., <LI><P style="margin-top: 100px"><IMG>, the marker would be aligned with the bottom of the IMG.
Opera will ignore negative text-indents inside LI (or its first block-level child not preceded by anonymous content).
If LI and its first block-level child not preceded by anonymous content have different font sizes, the marker won't be aligned correctly - it won't be aligned with the baseline of the first line of text in the principal block box.
The element is given a negative top margin and thus moved up. In addition, the bottom half of the element is chopped off when the page is loaded, but an alt-tab to another program and then back again restores the text (but it is still moved up a bit).
The following will trigger the bug: Setting any valid value for InlineElement:first-line on the following only:
Although this is not a valid token character, it should only result in the ruleset being ignored, not the whole of the rest of the style sheet.
According to the CSS specification, only 16 colors are defined. However, both Internet Explorer and Netscape define far more, and these are used by many designers. For example, BODY {color: white; background: darkgray} would work perfectly in Netscape and Internet Explorer, but would be invisible in Opera, the darkgray being ignored for Opera's default (usually white).
In addition to the bugs listed, the following CSS2 concepts are completely unsupported:
Copyright © RichInStyle.com 2000; all rights reserved. See copyright document for terms of use. Please visit Bukit Lawang flood appeal.