absolute-replaced-width-031.xht (2874B)
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <title>CSS Test: Absolutely positioned inline replaced element with 'direction' as right-to-left, 'auto' specified for 'margin-left', 'margin-right', 'right' and 'height'</title> 5 <link rel="author" title="Microsoft" href="http://www.microsoft.com/" /> 6 <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2012-09-08 --> 7 <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#abs-replaced-width" /> 8 <link rel="match" href="absolute-replaced-width-024-ref.xht" /> 9 10 <meta name="flags" content="nonHTML svg" /> 11 <meta name="assert" content="Computed value of 'auto' for 'margin-left' or margin-right' on absolutely positioned inline replaced element becomes a used value of '0'." /> 12 <style type="text/css"> 13 #div1 14 { 15 border: solid black; 16 direction: rtl; 17 height: 3in; 18 position: absolute; 19 width: auto; 20 } 21 22 /* 23 The svg's containing block is div#div1 which 24 has width: auto. Therefore, shrink-to-fit width 25 will apply to div#div1. 26 Its non-positioned content is its 27 inner div which requires a 28 minimum of 288px. Therefore, 29 div#div1 shrink-to-fit width 30 will compute to 288px. 31 */ 32 33 svg 34 { 35 height: 100px; 36 margin-left: auto; 37 margin-right: auto; 38 left: 88px; 39 position: absolute; 40 right: auto; 41 } 42 43 /* 44 45 88px : left 46 + 47 0px (set) : margin-left 48 + 49 300px : width (pre-defined fallback when intrinsic values are not defined) 50 + 51 0px (set) : margin-right 52 + 53 (solve) : right 54 ========================= 55 388px : width of containing block (div#div1 width is 288px) 56 57 Therefore, used right offset must be -100px so that the 58 constraining equation gets balanced. 59 60 */ 61 62 63 div div 64 { 65 background: orange; 66 height: 100px; 67 margin-left: 88px; 68 margin-top: 100px; 69 width: 200px; 70 } 71 </style> 72 </head> 73 <body> 74 <p>Test passes if the blue and orange rectangles have the same width and the blue rectangle is in the upper-right corner of an hollow black square.</p> 75 <div id="div1"> 76 <svg:svg version="1.1" xmlns:svg="http://www.w3.org/2000/svg" height="50" baseProfile="full"> 77 <svg:rect x="0" y="0" width="200" height="100" fill="blue" /> 78 </svg:svg> 79 <div></div> 80 </div> 81 </body> 82 </html>