﻿<!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 elements establish a new block formatting context</title>
        <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
        <link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-multi-column-model"/>
        <meta name="flags" content="" />
        <meta name="assert" content="Column elements establish a new block formatting context and cannot intersect with other block formatting context elements."/>
        <style type="text/css">
            #parent
            {
                font: 20px/1 ahem;
                height: 10em;
                position: relative;
                width: 14em;
            }
            #float
            {
                background: green;
                float: left;
                height: 2em;
                width: 2em;
            }
            #multicolumn
            {
                border: 1em solid green;
                color: green;
                -moz-column-count: 2;
                -moz-column-width: 5em;
                -moz-column-gap: 1em;

                -o-column-count: 2;
                -o-column-width: 5em;
                -o-column-gap: 1em;

                -webkit-column-count: 2;
                -webkit-column-width: 5em;
                -webkit-column-gap: 1em;

                column-count: 2;
                column-width: 5em;
                column-gap: 1em;
                width: 11em;
            }
            #multicolumn
            {
                height: 6em;
            }
            #reference
            {
                color: green;
                position: absolute;
                top: 0;
                z-index: -1;
            }
            #reference span
            {
                color: red;
            }
            #reference span span
            {
                color: green;
            }
        </style>
    </head>
    <body>
        <p>Test passes if there is no red visible on the page.</p>
        <div id="parent">
            <div id="float"></div>
            <div id="multicolumn">
                XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
            </div>
            <div id="reference">
                <span>XX</span>XXXXXXXXXXXX <span>XX</span>XXXXXXXXXXXX
                <span>XXXXXXXXXXXXX</span>X <span>XXXXXX<span>X</span>XXXXXX</span>X <span>XXXXXX<span>X</span>XXXXXX</span>X <span>XXXXXX<span>X</span>XXXXXX</span>X <span>XXXXXX<span>X</span>XXXXXX</span>X <span>XXXXXX<span>X</span>XXXXXX</span>X <span>XXXXXX<span>X</span>XXXXXX</span>X <span>XXXXXXXXXXXXX</span>X
            </div>
        </div>
    </body>
</html>