<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

 <head>

  <title>CSS Writing Modes Test: non-replaced block in normal flow with 'direction: rtl' in vertical-rl (overconstrained)</title>

  <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
  <link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#logical-direction-layout" title="7.4 Flow-Relative Mappings" />
  <link rel="match" href="abs-pos-non-replaced-vrl-012-ref.xht" />

  <meta name="flags" content="ahem image" />
  <meta name="assert" content="This test checks that when an inline dimension of a non-replaced block in normal flow is over-constrained, the inline-end margin is dropped and recalculated so that the equation involving inline-size is balanced; such equation takes under account the inline's direction (ltr or rtl). In this test, the inline-end margin (physical margin-top) is recalculated." />

  <!--
  "
  the margin that is dropped when a box’s inline dimension is over-constrained is the end margin as determined by the writing mode of the containing block.
  "
  7.4 Flow-Relative Mappings
  http://www.w3.org/TR/css-writing-modes-3/#logical-direction-layout

  "
  'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' = width of containing block

  If all of the above have a computed value other than 'auto', the values are said to be "over-constrained" and one of the used values will have to be different from its computed value. If the 'direction' property of the containing block has the value 'ltr', the specified value of 'margin-right' is ignored and the value is calculated so as to make the equality true. If the value of 'direction' is 'rtl', this happens to 'margin-left' instead.
  "
  CSS 2.1, section 10.3.3 Block-level, non-replaced elements in normal flow
  http://www.w3.org/TR/CSS21/visudet.html#blockwidth
  -->

  <meta name="DC.date.created" content="2015-10-16T09:54:03+11:00" scheme="W3CDTF" />
  <meta name="DC.date.modified" content="2017-02-18T09:54:03+11:00" scheme="W3CDTF" />

  <style type="text/css"><![CDATA[
  html
    {
      writing-mode: vertical-rl;
      background-image: url("support/bg-red-3col-2row-320x320.png");
      background-position: -152px 8px;
      /* first value represents the horizontal position and the second represents the vertical position */

      /*
         8px (body's margin-left)
      -
        80px (4th column width)
      -
        80px (3rd column width)
      ========
      -152px
      */
      background-repeat: no-repeat;
    }
  #containing-block
    {
      direction: rtl;
      height: 320px;
    }

  p
    {
      direction: ltr;
      margin-left: 16px;
      margin-right: 16px;
    }

  #test
    {
      background-color: green;
      margin-top: 160px;
      border-top: green solid 20px;
      padding-top: 20px;
      height: 0px;
      padding-bottom: 20px;
      border-bottom: green solid 20px;
      margin-bottom: 160px;

      margin-right: 96px; /* 80px + 16px necessary so that we can reuse an already created and available reference file */
      width: 80px;
    }

/*
"
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.
"
7.1 Principles of Layout in Vertical Writing Modes
http://www.w3.org/TR/css-writing-modes-3/#vertical-layout

So here, *-top and *-bottom properties are input into the §10.3.3 algorithms where *-top properties refer to *-left properties in the layout rules and where *-bottom properties refer to *-right properties in the layout rules.

'margin-top' + 'border-top-width' + 'padding-top' + 'height' + 'padding-bottom' + 'border-bottom-width' + 'margin-bottom' = height of containing block

So:

     160px : margin-top
  +
      20px : border-top-width
  +
      20px : padding-top
  +
       0px : height
  +
      20px : padding-bottom
  +
      20px : border-bottom-width
  +
     160px : margin-bottom
   ========================
     400px : while the height of containing block of div is 320px

So, here, the specified value of 'margin-top' is ignored and the value is calculated so as to make the equality true

   (solve) : margin-top
  +
      20px : border-top-width
  +
      20px : padding-top
  +
       0px : height
  +
      20px : padding-bottom
  +
      20px : border-bottom-width
  +
     160px : margin-bottom
   ========================
     320px : height of containing block

And so computed margin-top value must be 80px .
*/

  ]]></style>

 </head>

 <body>
  <div id="containing-block">
   <p><img src="support/pass-cdts-abs-pos-non-replaced.png" width="246" height="36" alt="Image download support must be enabled" /></p>
   <!--
   The image says:
   Test passes if there is a filled
   green square and <strong>no red</strong>.
   -->

   <div id="test"></div>
  </div>
 </body>
</html>
