block-non-replaced-width-002

Solving for width of block-level non-replaced elements in normal flow when 'width' is 'auto'

WeasyPrint

This browser

Assertion
When width is auto and the combination of border widths, padding widths, scrollbar widths, width, and non 'auto' margin widths are larger than the width of the containing block, the margin widths are treated as 0.

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: Solving for width of block-level non-replaced elements in normal flow when 'width' is '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#blockwidth">
 7         <meta name="flags" content="">
 8         <meta name="assert" content="When width is auto and the combination of border widths, padding widths, scrollbar widths, width, and non 'auto' margin widths are larger than the width of the containing block, the margin widths are treated as 0.">
 9         <style type="text/css">
10             #div1
11             {
12                 margin-top: 15px;
13                 width: 100px;
14             }
15             div div
16             {
17                 background-color: orange;
18                 border-left: 10px solid orange;
19                 border-right: 10px solid orange;
20                 height: 30px;
21                 margin-left: auto;
22                 padding-left: 10px;
23                 padding-right: 10px;
24                 width: 110px;
25             }
26             #div2
27             {
28                 background-color: blue;
29                 height: 30px;
30                 position: absolute;
31                 top: 82px;
32                 width: 150px;
33             }
34         </style>
35     </head>
36     <body>
37         <p>Test passes if the orange and blue boxes below are the same width.</p>
38         <div id="div1">
39             <div></div>
40         </div>
41         <div id="div2"></div>
42     </body>
43 </html>