/* for testing opacity set in styles in IE */
ol#empty { opacity: 0; filter:Alpha(opacity=0); }

div#fx-tests h4 {
        background: red;
}

div#fx-tests h4.pass {
        background: green;
}

div#fx-tests div.box {
        background: red;
        overflow: hidden;
        border: 2px solid #000;
}

div#fx-tests div.overflow {
        overflow: visible;
}

div.inline {
        display: inline;
}

div.autoheight {
        height: auto;
}

div.autowidth {
        width: auto;
}

div.autoopacity {
        opacity: auto;
}

div.largewidth {
        width: 100px;
}

div.largeheight {
        height: 100px;
}

div.largeopacity {
        filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);
}

div.medwidth {
        width: 50px;
}

div.medheight {
        height: 50px;
}

div.medopacity {
        opacity: 0.5;
        filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50);
}

div.nowidth {
        width: 0px;
}

div.noheight {
        height: 0px;
}

div.noopacity {
        opacity: 0;
        filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
}

div.hidden {
        display: none;
}

div#fx-tests div.widewidth {
        background-repeat: repeat-x;
}

div#fx-tests div.wideheight {
        background-repeat: repeat-y;
}

div#fx-tests div.widewidth.wideheight {
        background-repeat: repeat;
}

div#fx-tests div.noback {
        background-image: none;
}

div.chain, div.chain div { width: 100px; height: 20px; position: relative; float: left; }
div.chain div { position: absolute; top: 0px; left: 0px; }

div.chain.test { background: red; }
div.chain.test div { background: green; }

div.chain.out { background: green; }
div.chain.out div { background: red; display: none; }

/* tests to ensure jQuery can determine the native display mode of elements
   that have been set as display: none in stylesheets */
div#show-tests * { display: none; }

#nothiddendiv { font-size: 16px; }
#nothiddendivchild.em { font-size: 2em; }
#nothiddendivchild.prct { font-size: 150%; }
