- From: Arron Eicholz <Arron.Eicholz@microsoft.com>
- Date: Wed, 5 Jan 2011 17:28:00 +0000
- To: "css21testsuite@gtalbot.org" <css21testsuite@gtalbot.org>
- CC: "public-css-testsuite@w3.org" <public-css-testsuite@w3.org>
On Monday, December 13, 2010 9:15 AM Gérard Talbot wrote:
>
> 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
Fixed in RC5
--
Thanks,
Arron Eicholz
Received on Wednesday, 5 January 2011 17:28:55 UTC