absolute-non-replaced-height-004

Absolutely positioned, non-replaced elements, 'margin-top' set to 'auto'

WeasyPrint

This browser

Assertion
When 'top', 'bottom', 'height' and 'margin-bottom' of an absolutely positioned, non-replaced element are all not 'auto' while its 'margin-top' is 'auto', then 'margin-top' becomes the remainder of the height of its containing block.

Source

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 2 <html>
 3     <head>
 4         <title>CSS Test: Absolutely positioned, non-replaced elements, 'margin-top' set to 'auto'</title>
 5         <link rel="author" title="Microsoft" href="http://www.microsoft.com/">
 6         <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#abs-non-replaced-height">
 7         <meta name="flags" content="">
 8         <meta name="assert" content="When 'top', 'bottom', 'height' and 'margin-bottom' of an absolutely positioned, non-replaced element are all not 'auto' while its 'margin-top' is 'auto', then 'margin-top' becomes the remainder of the height of its containing block.">
 9         <style type="text/css">
10             #div1
11             {
12                 border: solid black;
13                 height: 3in;
14                 position: relative;
15                 width: 3in;
16             }
17             div div
18             {
19                 background: blue;
20                 bottom: 0.5in;
21                 height: 1in;
22                 margin-top: auto;
23                 margin-bottom: 0.5in;
24                 position: absolute;
25                 top: 0.5in;
26                 width: 100%;
27             }
28         </style>
29     </head>
30     <body>
31         <p>Test passes if the blue box is vertically centered in the black box.</p>
32         <div id="div1">
33             <div></div>
34         </div>
35     </body>
36 </html>