﻿<!DOCTYPE html PUBLIC "-//W3C//DTD//XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
 Internet Explorer Test Pages Copyright © 2012 Microsoft Corporation. All rights reserved.

 Redistribution and use in source and binary forms, with or without modification,
 are permitted provided that the following conditions are met:

 Redistributions of source code must retain the above copyright notice, this list of
 conditions and the following disclaimer.

 Redistributions in binary form must reproduce the above copyright notice, this list of
 conditions and the following disclaimer in the documentation and/or other materials
 provided with the distribution.

 Neither the name of the Microsoft Corporation nor the names of its contributors may be
 used to endorse or promote products derived from this software without specific prior
 written permission.

 THIS SOFTWARE IS PROVIDED BY MICROSOFT CORPORATION "AS IS" AND ANY EXPRESS OR IMPLIED
 WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MICROSOFT CORPORATION
 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
 OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGE.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>CSS Test: Box-Direction property is correct</title>
        <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
        <link rel="help" href="http://www.w3.org/TR/2009/WD-css3-flexbox-20090723/"/>
        <meta name="flags" content="" />
        <meta name="assert" content="box-direction property [normal, reverse, inherit] is correct in simple cases"/>
        <style type="text/css">
            .parent
            {
                float:left;  /*to shrink to fit*/
            }
            .box
            {
                display: -ms-box;
                display: -moz-box;
                display: -o-box;
                display: -webkit-box;
                display: box;
            }
            .child
            {
                border:thin solid black;
                margin: 0 10px;
                padding:0 10px;
                font-size:large;
                -ms-box-direction:normal;
                -webkit-box-direction:normal;
                -moz-box-direction:normal;
                -o-box-direction:normal;
                box-direction:normal;
            }
            .reverse
            {
                -ms-box-direction:reverse;
                -webkit-box-direction:reverse;
                -moz-box-direction:reverse;
                -o-box-direction:reverse;
                box-direction:reverse;
            }
            .inherit
            {
                -ms-box-direction:inherit;
                -webkit-box-direction:inherit;
                -moz-box-direction:inherit;
                -o-box-direction:inherit;
                box-direction:inherit;
            }
            .lr
            {
                direction:ltr;
            }
            .rl
            {
                direction:rtl;
            }
        </style>
    </head>
    <body>
        <p>Test passes if four rows of numbers (1,2,3) are read in increasing numerical order left to right.</p>
        <div class="parent">
            <div class="box">
                <div class="child">1</div>
                <div class="child">2</div>
                <div class="child">3</div>
            </div>
            <br />
            <div class="box reverse">
                <div class="child">3</div>
                <div class="child">2</div>
                <div class="child">1</div>
            </div>
            <br />
            <div class="lr">
                <div class="box inherit">
                    <div class="child">1</div>
                    <div class="child">2</div>
                    <div class="child">3</div>
                </div>
            </div>
            <br />
            <div class="rl">
                <div class="box inherit">
                    <div class="child">3</div>
                    <div class="child">2</div>
                    <div class="child">1</div>
                </div>
            </div>
        </div>
    </body>
</html>
