summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/CSS2/margin-padding-clear/margin-005.xht
blob: 14d620b20495f07889f1564a623bfd671e60763e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>CSS Test: Margin with a value of 'auto'</title>
        <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
        <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2012-08-13 -->
        <link rel="help" href="http://www.w3.org/TR/CSS21/box.html#propdef-margin" />
        <link rel="help" href="http://www.w3.org/TR/CSS21/box.html#margin-properties" />
        <link rel="match" href="margin-005-ref.xht" />

        <meta name="assert" content="The 'margin' property with a value of 'auto' correctly sizes the margin. In normal flow, 'margin-top: auto' and 'margin-bottom: auto' for block-level, non-replaced elements are resolved as 0. In normal flow, 'margin-left: auto' and 'margin-right: auto' for block-level, non-replaced elements are resolved according to the constraint equation for the width of containing block: 'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' = width of containing block" />
        <style type="text/css">
            #wrapper
            {
                position: relative;
            }
            #div1, #div2
            {
                border: 10px solid green;
            }
            #div1, #reference
            {
                left: 0;
                position: absolute;
                top: 0;
            }

			/*
			In this test, #div1, which is absolutely positioned, is
			#div2's containing block. In which case, the width of #div1 is
			shrink-to-fit to the width of #div2 plus its borders.
			http://www.w3.org/TR/CSS21/visudet.html#abs-non-replaced-width
			*/

            #div2
            {
                height: 1in;
                margin: auto;
                width: 3in;
            }
            #reference
            {
                border: 20px solid red;
                height: 96px;
                width: 288px;
            }
        </style>
    </head>
    <body>
        <p>Test passes if there is <strong>no red</strong>.</p>
        <div id="wrapper">
            <div id="reference"></div>
            <div id="div1">
                <div id="div2"></div>
            </div>
        </div>
    </body>
</html>