abs-pos-non-replaced-vlr-113.xht (3142B)
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: rtl' and 'top', 'height', and 'bottom' are '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-height" title="10.6.4 Absolutely positioned, non-replaced elements" /> 12 <link rel="match" href="abs-pos-non-replaced-vlr-009-ref.xht" /> 13 14 <meta name="flags" content="ahem image" /> 15 <meta name="assert" content="When 'direction' is 'rtl' and 'top', 'height' and 'bottom' are 'auto', then set 'top' to the static position, the height is based on content and then solve for 'bottom'." /> 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-2col-2row-320x320.png"); 22 color: transparent; 23 direction: rtl; 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 bottom: auto; 34 color: green; 35 height: auto; 36 position: absolute; 37 top: auto; 38 writing-mode: vertical-lr; 39 } 40 41 /* 42 " 43 If all three of 'top', 'height', and 'bottom' are auto, set 'top' to the static position and apply rule number three below. 44 45 3. 'height' and 'bottom' are 'auto' and 'top' is not 'auto', then the height is based on the content per 10.6.7, set 'auto' values for 'margin-top' and 'margin-bottom' to 0, and solve for 'bottom' 46 " 47 48 'top' + 'margin-top' + 'border-top-width' + 'padding-top' + 'height' + 'padding-bottom' + 'border-bottom-width' + 'margin-bottom' + 'bottom' = height of containing block 49 50 So: 51 52 80px : top: auto: set to static position 53 + 54 0px : margin-top 55 + 56 0px : border-top-width 57 + 58 0px : padding-top 59 + 60 (shrink-to-fit) : height: auto 61 + 62 0px : padding-bottom 63 + 64 0px : border-bottom-width 65 + 66 0px : margin-bottom 67 + 68 (solve) : bottom: auto 69 ===================== 70 320px : height of containing block 71 72 gives us: 73 74 80px : top: auto: set to static position 75 + 76 0px : margin-top 77 + 78 0px : border-top-width 79 + 80 0px : padding-top 81 + 82 80px : (shrink-to-fit) : height: auto 83 + 84 0px : padding-bottom 85 + 86 0px : border-bottom-width 87 + 88 0px : margin-bottom 89 + 90 (solve) : bottom: auto 91 ===================== 92 320px : height of containing block 93 94 And so computed bottom value must be 160px . 95 */ 96 97 ]]></style> 98 99 </head> 100 101 <body> 102 103 <p><img src="support/pass-cdts-abs-pos-non-replaced.png" width="246" height="36" alt="Image download support must be enabled" /></p> 104 105 <div id="containing-block">1 2 34<span>X</span></div> 106 107 </body> 108 </html>