<!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: Layering of box shadows</title>
        <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
        <link rel="help" href="http://www.w3.org/TR/css3-background/#the-background-size" />
        <meta name="flags" content="" />
        <meta name="assert" content="Shadow effects are applied front to back, where the first shadow is on the top and the last shadow is on the bottom." />
        <style type="text/css">
            #reference1
            {
                width: 96px;
                height: 96px;
                box-shadow: orange 30px 30px;
            }
            #reference2
            {
                margin-top: -96px;
                width: 96px;
                height: 96px;
                box-shadow: blue 20px 20px
            }
            #reference3
            {
                margin-top: -96px;
                width: 96px;
                height: 96px;
                box-shadow: 10px 10px;
            }
            #test
            {
                margin-top: 40px;
                width: 96px;
                height: 96px;
                box-shadow: 10px 10px, blue 20px 20px, orange 30px 30px;
            }
        </style>
    </head>
    <body>
        <p>Test passes if two drawings are exactly the same.</p>
        <div id="reference1"></div>
        <div id="reference2"></div>
        <div id="reference3"></div>
        <div id="test"></div>
    </body>
</html>