<?xml version="1.0" encoding="UTF-8"?>
<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/
-->
<!-- Reference case for align-items / align-self behavior in a vertical
     "direction: rtl" flex container, using blocks in place of flex items and
     using float and width keywords to emulate the align-items / align-self
     properties. -->
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>CSS Reftest Reference</title>
    <link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com"/>
    <style>
      .flexbox {
        border: 1px dashed blue;
        width: 200px;
        float: left;
        direction: rtl;
        font-family: sans-serif;
        font-size: 10px;
      }

      .flex-start, .flex-end, .center, .baseline, .stretch {
        clear: both;
        margin:       1px 2px 3px 4px;
        border-width: 2px 3px 4px 5px;
        padding:      3px 4px 5px 6px;
        border-style: dotted;
      }

      div.big {
        font-size: 20px;
        width: 50px;
      }

      /* Classes for each of the various align-self values */
      .flex-start {
        background: lime;
        float: right;
      }
      .flex-end {
        background: orange;
        float: left;
      }
      <!-- We center shrinkwrapped text by putting it into an inline-block, and
           then wrapping that inline-block in a helper-div that has
           "text-align:center" set. -->
      .centerParent {
        text-align: center;
      }
      .center {
        background: lightblue;
        display: inline-block;
        text-align: right; /* Keep parent's centering from tweaking my text */
      }
      .baseline {
        background: teal;
        float: right;
      }
      .stretch {
        background: pink;
      }
      .clearFloats { clear: both }
   </style>
  </head>
  <body>
    <div class="flexbox">
      <div class="flex-start">start</div>
      <div class="flex-start big">a b c d e f</div>
      <div class="flex-end">end</div>
      <div class="flex-end big">a b c d e f</div>
      <div class="clearFloats"></div>
      <div class="centerParent">
        <div class="center">center</div>
      </div>
      <div class="centerParent">
        <div class="center big">a b c d e f</div>
      </div>
    </div>
    <div class="flexbox">
      <div class="baseline">base</div>
      <div class="baseline big">abc</div>
      <div class="clearFloats"></div>
      <div class="stretch">stretch</div>
      <!-- Force a 3px + 1px = 4px margin between this and the previous div
           (to thwart the effects of margin-collapsing). This is the only
           place we need this hack, because everywhere else in this test
           we use floats or inline-blocks, whose margins don't collapse. -->
      <div class="stretch big" style="margin-top: 4px">a b c d e f</div>
    </div>
  </body>
</html>
