summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/CSS2/positioning/absolute-non-replaced-height-008.xht
blob: 22f8598a493489c670a28801af5fffde995698d3 (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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<!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: Absolutely positioned, non-replaced elements, 'top' set to static position</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-27 -->
        <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#abs-non-replaced-height" />
		<link rel="match" href="absolute-non-replaced-height-008-ref.xht" />

        <meta name="assert" content="When 'top' is set to the static position and any 'auto' values for top and bottom margin are set to '0', when 'top' and 'bottom' are 'auto' and 'height' is not 'auto'." />
        <style type="text/css">
            #div1
            {
                background: blue;
                height: 3in;
                position: relative;
                width: 1in;
            }
            div div
            {
                background: orange;
                bottom: auto;
                height: 1in;
                margin-bottom: auto;
                margin-top: auto;
                position: absolute;
                top: auto;
                width: 100%;
            }


            /*

		 auto (to solve) : top
	+
		 auto (to solve): margin-top
	+
		 0 : border-top-width
	+
		 0 : padding-top
	+
		 1in : height
	+
		 0 : padding-bottom
	+
		 0 : border-bottom-width
	+
		 auto (to solve): margin-bottom
	+
		auto (to solve) : bottom
	=============
		3in  : height of containing block


	"
	'top' and 'bottom' are 'auto' and 'height' is not 'auto',
	then set 'top' to the static position,
	set 'auto' values for 'margin-top' and 'margin-bottom' to 0,
	and solve for 'bottom'
	"

	so this brings:

		 0 (solved static position) : top
	+
		 0 (solved): margin-top
	+
		 0 : border-top-width
	+
		 0 : padding-top
	+
		 1in : height
	+
		 0 : padding-bottom
	+
		 0 : border-bottom-width
	+
		 0 (solved): margin-bottom
	+
		auto (to solve) : bottom
	=============
		3in  : height of containing block

		So, bottom must use 2in in order to balance the equation


            */
        </style>
    </head>
    <body>
        <p>Test passes if a blue rectangle is below an orange square.</p>
        <div id="div1">
            <div></div>
        </div>
    </body>
</html>