absolute-non-replaced-width-009

Absolutely positioned non-replaced elements with left, width, right and margin-left not auto

WeasyPrint

This browser

Flags
ahem
Assertion
If 'left', 'width', 'right' and 'margin-left' are all not 'auto' and 'margin-right' is 'auto', then solve the equation for 'margin-right'.

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