tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

abs-pos-non-replaced-vlr-007.xht (3904B)


      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 '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-width" title="10.3.7 Absolutely positioned, non-replaced elements" />
     12   <link rel="match" href="abs-pos-non-replaced-vlr-007-ref.xht" />
     13 
     14   <meta name="flags" content="ahem image" />
     15   <meta name="assert" content="When 'direction' is 'ltr' and 'top', 'height' and 'bottom' are 'auto', then set 'top' to the static position, then the height is based on the 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   html
     20     {
     21       writing-mode: vertical-lr;
     22     }
     23 
     24   div#containing-block
     25     {
     26       background: red url("support/bg-red-2col-3row-320x320.png");
     27       color: transparent;
     28       direction: ltr;
     29       font: 80px/1 Ahem;
     30       height: 320px;
     31       position: relative;
     32       width: 320px;
     33 
     34     }
     35 
     36   div#containing-block > span
     37     {
     38       background-color: red;
     39       bottom: auto;
     40       color: green;
     41       height: auto;
     42       position: absolute;
     43       top: auto;
     44     }
     45 
     46 /*
     47 "
     48 Layout calculation rules (such as those in CSS2.1, Section 10.3) that apply to the horizontal dimension in horizontal writing modes instead apply to the vertical dimension in vertical writing modes.
     49 "
     50 7.1 Principles of Layout in Vertical Writing Modes
     51 http://www.w3.org/TR/css-writing-modes-3/#vertical-layout
     52 
     53 So here, *-top and *-bottom properties are input into the §10.3.7 algorithms where *-top properties refer to *-left properties in the layout rules and where *-bottom properties refer to *-right properties in the layout rules.
     54 
     55 "
     56 If all three of 'left', 'width', and 'right' are 'auto': First set any 'auto' values for 'margin-left' and 'margin-right' to 0. Then, if the 'direction' property of the element establishing the static-position containing block is 'ltr' set 'left' to the static position and apply rule number three below; otherwise, set 'right' to the static position and apply rule number one below.
     57 
     58 3. 'width' and 'right' are 'auto' and 'left' is not 'auto', then the width is shrink-to-fit . Then solve for 'right'
     59 "
     60 
     61 'top' + 'margin-top' + 'border-top-width' + 'padding-top' + 'height' + 'padding-bottom' + 'border-bottom-width' + 'margin-bottom' + 'bottom' = height of containing block
     62 
     63 So:
     64 
     65     160px : top: auto: set to static position
     66   +
     67       0px : margin-top
     68   +
     69       0px : border-top-width
     70   +
     71       0px : padding-top
     72   +
     73   (based on the content) : height: auto
     74   +
     75       0px : padding-bottom
     76   +
     77       0px : border-bottom-width
     78   +
     79       0px : margin-bottom
     80   +
     81   (solve) : bottom: auto
     82     =====================
     83     320px : height of containing block
     84 
     85 gives us:
     86 
     87     160px : top: auto: set to static position
     88   +
     89       0px : margin-top
     90   +
     91       0px : border-top-width
     92   +
     93       0px : padding-top
     94   +
     95      80px : (based on the content) : height: auto
     96   +
     97       0px : padding-bottom
     98   +
     99       0px : border-bottom-width
    100   +
    101       0px : margin-bottom
    102   +
    103   (solve) : bottom: auto
    104     =====================
    105     320px : height of containing block
    106 
    107 And so computed bottom value must be 80px .
    108 */
    109 
    110   ]]></style>
    111 
    112  </head>
    113 
    114  <body>
    115 
    116   <p><img src="support/pass-cdts-abs-pos-non-replaced.png" width="246" height="36" alt="Image download support must be enabled" /></p>
    117 
    118   <div id="containing-block">1 2 34<span>X</span></div>
    119 
    120  </body>
    121 </html>