summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/CSS2/positioning/absolute-non-replaced-width-005.xht
blob: d2d3ca9d06d443d142afc13df6c31862b0630c6f (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
<!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 when both 'margin-left' and 'margin-right' are set to 'auto' and direction is right-to-left</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-31 -->
        <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#abs-non-replaced-width" />
        <link rel="match" href="absolute-non-replaced-height-002-ref.xht" />

        <meta name="flags" content="ahem" />
        <meta name="assert" content="When direction is 'rtl' and 'left', 'width' and 'right' are not 'auto', solve for 'margin-right' and 'margin-left' to equal values. If this would make 'margin-left' and 'margin-right' negative, then set 'margin-right' to zero and solve for 'margin-left'." />
        <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
        <style type="text/css">
            #div1
            {
                border: solid black;
                direction: rtl;
                height: 200px;
                position: relative;
                width: 200px;
            }
            div div
            {
                background: red;
                color: blue;
                font: 100px/1em Ahem;
                left: 100px;
                margin-left: auto;
                margin-right: auto;
                position: absolute;
                right: 100px;
                width: 100px;
            }
            /*
                left                    :   100px
              + margin-left             :   solve (auto)
              + border-left-width       :   0
              + padding-left            :   0
              + width                   :   100px
              + padding-right           :   0
              + border-right-width      :   0
              + margin-right            :   solve (auto)
              + right                   :   100px
              ====================================
              width of containing block :   200px

            So, margin-left and margin-right would be each -50px at this point.

            "...unless this would make them (the two margins) negative
            in which case when direction of the containing block is
            'ltr' ('rtl'), set 'margin-left' ('margin-right') to zero and
            solve for 'margin-right' ('margin-left')."

            So, under such extra constraint, 'margin-right' must become 0
            and 'margin-left' must become -100px.
            */
        </style>
    </head>
    <body>
        <p>Test passes if a filled blue square is in the <strong>upper-left corner</strong> of an hollow black square and if there is <strong>no red</strong>.</p>
        <div id="div1">
            <div>X</div>
        </div>
    </body>
</html>