﻿<!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: Display property with 'inline-grid' value</title>
        <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
        <link rel="help" href="http://dev.w3.org/csswg/css3-grid-align/#grid-declaration" />
        <meta name="flags" content="ahem" />
        <meta name="assert" content="The 'display' property accepts the 'inline-grid' value." />
        <style type="text/css">
            #parent
            {
                font: 20px/1 ahem;
                position: relative;
                width: 13em;
            }
            #test
            {
                color: green;
                display: -ms-inline-grid;
                display: -moz-inline-grid;
                display: -o-inline-grid;
                display: inline-grid;
                display: inline-grid;
                height: 3em;
                -ms-grid-columns: auto 1fr;
                -moz-grid-columns: auto 1fr;
                -o-grid-columns: auto 1fr;
                grid-defintion-columns: auto 1fr;
                grid-columns: auto 1fr;
                -ms-grid-rows: auto 1fr;
                -moz-grid-rows: auto 1fr;
                -o-grid-rows: auto 1fr;
                grid-defintion-rows: auto 1fr;
                grid-rows: auto 1fr;
            }
            #title
            {
                -ms-grid-column: 1;
                -moz-grid-column: 1;
                -o-grid-column: 1;
                grid-column: 1;
                grid-column: 1;
                -ms-grid-row: 1;
                -moz-grid-row: 1;
                -o-grid-row: 1;
                grid-row: 1;
                grid-row: 1;
            }
            #board
            {
                -ms-grid-column: 2;
                -moz-grid-column: 2;
                -o-grid-column: 2;
                grid-column: 2;
                grid-column: 2;
                -ms-grid-row: 1;
                -moz-grid-row: 1;
                -o-grid-row: 1;
                grid-row: 1;
                grid-row: 1;
            }
            #absolute
            {
                color: red;
                height: 3em;
                position: absolute;
                z-index: -1;
            }
            #absolute span
            {
                color: green;
            }
        </style>
    </head>
    <body>
        <p>Test passes if there is no red visible on the page.</p>
        <div id="parent">
            <div id="absolute">
                XXXXXXXXX<span>XXXX</span>
            </div>
            <div id="test">
                <div id="board">XXXX</div>
                <div id="title">XXXXX</div>
            </div>
        </div>
    </body>
</html>
