﻿<!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>
        <script src="../../../resources/ahem.js"></script>
        <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: -webkit-inline-grid;
                display: inline-grid;
                height: 3em;
                -ms-grid-template-columns: auto 1fr;
                -moz-grid-template-columns: auto 1fr;
                -o-grid-template-columns: auto 1fr;
                -webkit-grid-template-columns: auto 1fr;
                grid-template-columns: auto 1fr;
                -ms-grid-template-rows: auto 1fr;
                -moz-grid-template-rows: auto 1fr;
                -o-grid-template-rows: auto 1fr;
                -webkit-grid-template-rows: auto 1fr;
                grid-template-rows: auto 1fr;
            }
            #title
            {
                -ms-grid-column: 1;
                -moz-grid-column: 1;
                -o-grid-column: 1;
                -webkit-grid-column: 1;
                grid-column: 1;
                -ms-grid-row: 1;
                -moz-grid-row: 1;
                -o-grid-row: 1;
                -webkit-grid-row: 1;
                grid-row: 1;
            }
            #board
            {
                -ms-grid-column: 2;
                -moz-grid-column: 2;
                -o-grid-column: 2;
                -webkit-grid-column: 2;
                grid-column: 2;
                -ms-grid-row: 1;
                -moz-grid-row: 1;
                -o-grid-row: 1;
                -webkit-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>
