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
97
98
99
100
101
102
103
104
105
106
107
108
|
<!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 Writing Modes Test: absolutely positioned non-replaced element - 'direction: rtl' and 'top', 'height', and 'bottom' are 'auto'</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
<link rel="help" href="http://www.w3.org/TR/css-writing-modes-3/#vertical-layout" title="7.1 Principles of Layout in Vertical Writing Modes" />
<link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#abs-non-replaced-height" title="10.6.4 Absolutely positioned, non-replaced elements" />
<link rel="match" href="abs-pos-non-replaced-vlr-009-ref.xht" />
<meta name="flags" content="ahem image" />
<meta name="assert" content="When 'direction' is 'rtl' and 'top', 'height' and 'bottom' are 'auto', then set 'top' to the static position, the height is based on content and then solve for 'bottom'." />
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style type="text/css"><![CDATA[
div#containing-block
{
background: red url("support/bg-red-2col-2row-320x320.png");
color: transparent;
direction: rtl;
font: 80px/1 Ahem;
height: 320px;
position: relative;
width: 320px;
}
div#containing-block > span
{
background-color: red;
bottom: auto;
color: green;
height: auto;
position: absolute;
top: auto;
writing-mode: vertical-rl;
}
/*
"
If all three of 'top', 'height', and 'bottom' are auto, set 'top' to the static position and apply rule number three below.
3. 'height' and 'bottom' are 'auto' and 'top' is not 'auto', then the height is based on the content per 10.6.7, set 'auto' values for 'margin-top' and 'margin-bottom' to 0, and solve for 'bottom'
"
'top' + 'margin-top' + 'border-top-width' + 'padding-top' + 'height' + 'padding-bottom' + 'border-bottom-width' + 'margin-bottom' + 'bottom' = height of containing block
So:
80px : top: auto: set to static position
+
0px : margin-top
+
0px : border-top-width
+
0px : padding-top
+
(shrink-to-fit) : height: auto
+
0px : padding-bottom
+
0px : border-bottom-width
+
0px : margin-bottom
+
(solve) : bottom: auto
=====================
320px : height of containing block
gives us:
80px : top: auto: set to static position
+
0px : margin-top
+
0px : border-top-width
+
0px : padding-top
+
80px : (shrink-to-fit) : height: auto
+
0px : padding-bottom
+
0px : border-bottom-width
+
0px : margin-bottom
+
(solve) : bottom: auto
=====================
320px : height of containing block
And so computed bottom value must be 160px .
*/
]]></style>
</head>
<body>
<p><img src="support/pass-cdts-abs-pos-non-replaced.png" width="246" height="36" alt="Image download support must be enabled" /></p>
<div id="containing-block">1 2 34<span>X</span></div>
</body>
</html>
|