﻿<!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: Flex groups can max out and share additional space with others</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="image" />
        <meta name="assert" content="box-flex-groups can reach max size and share additional space with other groups"/>
        <style type="text/css">
            .box
            {
                display: -ms-box;
                display: -moz-box;
                display: -o-box;
                display: -webkit-box;
                display: box;
                background: red;
                width: 300px;
                height: 100px;
            }
            .child
            {
                width: 50px;
                height: 100px;
                -ms-box-flex: 1;
                -moz-box-flex: 1;
                -o-box-flex: 1;
                -webkit-box-flex: 1;
                box-flex: 1;
                background: green;
            }
            .one
            {
                max-width: 200px;
                -ms-box-flex-group: 1;
                -moz-box-flex-group: 1;
                -o-box-flex-group: 1;
                -webkit-box-flex-group: 1;
                box-flex-group: 1;
                background: url('../support/flexbox_200x100g_red.png') top left no-repeat red;
            }
            .two
            {
                -ms-box-flex-group: 2;
                -moz-box-flex-group: 2;
                -o-box-flex-group: 2;
                -webkit-box-flex-group: 2;
                box-flex-group: 2;
                background: url('../support/flexbox_100x100g_red.png') top left no-repeat red;
            }
        </style>
    </head>
    <body>
        <p>This test passes if there is no red showing.</p>
        <div class="box">
            <div class="child one"></div>
            <div class="child two"></div>
        </div>
    </body>
</html>
