﻿<!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: Column-width applied to 'display: table-cell'</title>
        <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
        <link rel="help" href="http://www.w3.org/TR/css3-multicol/#cw"/>
        <meta name="flags" content="" />
        <meta name="assert" content="The 'column-width' property applies to elements of 'display: table-cell'."/>
        <style type="text/css">
            #parent
            {
                color: red;
                font: 20px/1 monospace;
                position: relative;
            }
            #multicolumn
            {
                display: table-cell;
                -moz-column-width: 5em;

                -o-column-width: 5em;

                -webkit-column-width: 5em;

                column-width: 5em;
            }
            #multicolumn, #reference
            {
                height: 6em;
                width: 11em;
            }
            #reference
            {
                color: green;
                position: absolute;
                top: 0;
            }
            #reference div
            {
                position: absolute;
                width: 5em;
            }
            #right
            {
                right: 0;
            }
            #table
            {
                display: table;
                border-spacing: 0;
                table-layout: fixed;
            }
            #row
            {
                display: table-row;
            }
            #cell
            {
                display: table-cell;
                padding: 0;
            }
        </style>
    </head>
    <body>
        <p>Test passes if there is no red visible on the page.</p>
        <div id="parent">
            <div id="table">
                <div id="row">
                    <div id="multicolumn">
                        AAAAAAAAA BBBBBBBBB CCCCCCCCC DDDDDDDDD EEEEEEEEE FFFFFFFFF GGGGGGGGG HHHHHHHHH IIIIIIIII JJJJJJJJJ KKKKKKKKK LLLLLLLLL
                    </div>
                </div>
            </div>
            <div id="reference">
                <div>AAAAAAAAA BBBBBBBBB CCCCCCCCC DDDDDDDDD EEEEEEEEE FFFFFFFFF</div>
                <div id="right">GGGGGGGGG HHHHHHHHH IIIIIIIII JJJJJJJJJ KKKKKKKKK LLLLLLLLL</div>
            </div>
        </div>
    </body>
</html>