absolute-non-replaced-width-003

Absolutely positioned non-replaced elements with 'margin-left' and 'margin-right' set to 'auto'

WeasyPrint

This browser

Flags
ahem
Assertion
When 'left', 'width' and 'right' are not 'auto', set 'margin-left' and 'margin-right' to equal values.

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 with 'margin-left' and 'margin-right' 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-width">
 7         <meta name="flags" content="ahem">
 8         <meta name="assert" content="When 'left', 'width' and 'right' are not 'auto', set 'margin-left' and 'margin-right' to equal values.">
 9         <style type="text/css">
10             #containingblock
11             {
12                 border: solid black;
13                 height: 2in;
14                 position: relative;
15                 width: 4in;
16             }
17             div div
18             {
19                 /* left + margin-left + border-left-width + padding-left + width + padding-right + border-right-width + margin-right + right = width of containing block */
20                 /* 1in + solve       + 0                 + 0            + 1in   + 0             + 0                  + solve        + -2in   = 4in */
21                 background: red;
22                 color: blue;
23                 font: 1in/1em Ahem;
24                 left: 1in;
25                 margin-left: auto; /* value is solved to 2in */
26                 margin-right: auto; /* value is solved to 2in */
27                 position: absolute;
28                 right: -2in;
29                 width: 1in;
30             }
31         </style>
32     </head>
33     <body>
34         <p>Test passes if the blue square in in the upper-right corner of the black rectangle and there is no red visible on the page.</p>
35         <div id="containingblock">
36             <div>X</div>
37         </div>
38     </body>
39 </html>