- 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