[RC4] absolute-non-replaced-width-004 and absolute-non-replaced-width-005 proposed assert text

Hello Arron,

http://test.csswg.org/source/contributors/microsoft/submitted/Chapter_10/absolute-non-replaced-width-004.xht

http://test.csswg.org/source/contributors/microsoft/submitted/Chapter_10/absolute-non-replaced-width-004.htm

http://test.csswg.org/suites/css2.1/20101210/xhtml1/absolute-non-replaced-width-004.xht

http://test.csswg.org/suites/css2.1/20101210/html4/absolute-non-replaced-width-004.htm

{
'left' + 'margin-left' + 'border-left-width' + 'padding-left' + 'width'
+ 'padding-right' + 'border-right-width' + 'margin-right' + 'right' =
width of containing block

(...)

If none of the three is 'auto': If both 'margin-left' and 'margin-right'
are 'auto', solve the equation under the extra constraint that the two
margins get equal values, unless this would make them negative, in which
case when direction of the containing block is 'ltr' ('rtl'), set
'margin-left' ('margin-right') to zero and solve for 'margin-right'
('margin-left').
}
http://www.w3.org/TR/CSS21/visudet.html#abs-non-replaced-width

            #div1
            {
                border: solid black;
                direction: ltr;
                height: 2in;
                position: relative;
                width: 2in;
            }
            div div
            {
                background: red;
                color: blue;
                font: 1in/1em Ahem;
                left: 1in;
                margin-left: auto;
                margin-right: auto;
                position: absolute;
                right: 1in;
                width: 1in;
            }

So, this means for absolute-non-replaced-width-004

/*
    left                    :   1in
  + margin-left             :   solve (auto)
  + border-left-width       :   0
  + padding-left            :   0
  + width                   :   1in
  + padding-right           :   0
  + border-right-width      :   0
  + margin-right            :   solve (auto)
  + right                   :   1in
  ====================================
  width of containing block :   2in


So, margin-left and margin-right would be each -0.5in at this point.

"...unless this would make them (the two margins) negative in which case
when direction of the containing block is 'ltr' ('rtl'), set
'margin-left' ('margin-right') to zero and solve for
'margin-right' ('margin-left')."

So, under such extra constraint, 'margin-left' must become 0 and
'margin-right' must become -1in.
*/

Proposed replacement
====================

 <meta name="assert" content="When direction is 'ltr' and 'left',
'width' and 'right' are not 'auto', solve for 'margin-right' and
'margin-left' to equal values. If this would make 'margin-left' and
'margin-right' negative (as in this testcase), then set 'margin-left'
to zero and solve for 'margin-right'.">

along with judicious, helpful /* comments */

The same kind of adjustment in
http://test.csswg.org/source/contributors/microsoft/submitted/Chapter_10/absolute-non-replaced-width-005.xht

I would rename #div1 to #containing-block and change "is in upper-left
corner..." to "fills the upper-left corner...".

I have uploaded the 2 files with proposed changes here:

http://www.gtalbot.org/BrowserBugsSection/css21testsuite/absolute-non-replaced-width-004.xht

http://www.gtalbot.org/BrowserBugsSection/css21testsuite/absolute-non-replaced-width-005.xht

regards, Gérard
-- 
Contributions to the CSS 2.1 test suite:
http://www.gtalbot.org/BrowserBugsSection/css21testsuite/

CSS 2.1 test suite (RC4; December 10th 2010):
http://test.csswg.org/suites/css2.1/20101210/html4/toc.html

CSS 2.1 test suite contributors:
http://test.csswg.org/source/contributors/

Received on Monday, 13 December 2010 17:15:16 UTC