abs-pos-non-replaced-vrl-028.xht (3103B)
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 2 3 <html xmlns="http://www.w3.org/1999/xhtml"> 4 5 <head> 6 7 <title>CSS Writing Modes Test: absolutely positioned non-replaced element - 'direction: ltr' and 'left' and 'right' are 'auto' and 'width' is not 'auto'</title> 8 9 <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> 10 <link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#vertical-layout" title="7.1 Principles of Layout in Vertical Writing Modes" /> 11 <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#abs-non-replaced-width" title="10.3.7 Absolutely positioned, non-replaced elements" /> 12 <link rel="match" href="abs-pos-non-replaced-vrl-004-ref.xht" /> 13 14 <meta name="flags" content="ahem image" /> 15 <meta name="assert" content="When 'direction' is 'ltr' and 'left' and 'right' are 'auto' and 'width' is not 'auto', then set 'left' to the static position and then solve for 'right'." /> 16 17 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> 18 <style type="text/css"><![CDATA[ 19 div#containing-block 20 { 21 background: red url("support/bg-red-3col-2row-320x320.png"); 22 color: transparent; 23 direction: ltr; 24 font: 80px/1 Ahem; 25 height: 320px; 26 position: relative; 27 width: 320px; 28 } 29 30 div#containing-block > span 31 { 32 background-color: red; 33 color: green; 34 left: auto; 35 position: absolute; 36 right: auto; 37 width: 1em; 38 writing-mode: vertical-rl; 39 } 40 41 /* 42 " 43 2. 'left' and 'right' are 'auto' and 'width' is not 'auto', then if the 'direction' property of the element establishing the static-position containing block is 'ltr' set 'left' to the static position, otherwise set 'right' to the static position. Then solve for 'left' (if 'direction is 'rtl') or 'right' (if 'direction' is 'ltr'). 44 " 45 46 'left' + 'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' + 'right' = width of containing block 47 48 So: 49 50 160px : left: auto: set to static position 51 + 52 0px : margin-left 53 + 54 0px : border-left-width 55 + 56 0px : padding-left 57 + 58 80px : width 59 + 60 0px : padding-right 61 + 62 0px : border-right-width 63 + 64 0px : margin-right 65 + 66 (solve) : right: auto 67 ===================== 68 320px : width of containing block 69 70 gives us: 71 72 160px : left: auto: set to static position 73 + 74 0px : margin-left 75 + 76 0px : border-left-width 77 + 78 0px : padding-left 79 + 80 80px : width 81 + 82 0px : padding-right 83 + 84 0px : border-right-width 85 + 86 0px : margin-right 87 + 88 (solve) : right: auto 89 ===================== 90 320px : width of containing block 91 92 And so computed right value must be 80px . 93 */ 94 95 ]]></style> 96 97 </head> 98 99 <body> 100 101 <p><img src="support/pass-cdts-abs-pos-non-replaced.png" width="246" height="36" alt="Image download support must be enabled" /></p> 102 103 <div id="containing-block">1 2 34<span>X</span></div> 104 105 </body> 106 </html>