summaryrefslogtreecommitdiffstats
path: root/layout/reftests/svg/use-element-shadow-tree-rule-matching.html
blob: e73c910939630b46b48256b95aa7fbe20d460414 (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
<!DOCTYPE html>
<html>
<style type="text/css">
  div {
    width: 100px;
    height:100px;
    position: fixed;
  }

  /* #outer is in main DOM, circle instance in use-element shadow DOM,
     should not match this rule for cloned circle instance. */
  #outer circle {
	  stroke: red;
	  fill: red;
	  stroke-width: 4px;
  }

  /* div is in main DOM, rect instance in use-element shadow DOM.
     should not match this rule for cloned rect instance. */
  div rect {
	  stroke: red;
	  fill: red;
	  stroke-width: 4px;
  }

  /* use element is host of shadow tree, not part of it. This rule should
     not match any elements in the use-element shadow tree. */
  use > rect, use > circle {
    stroke: red;
    fill: red;
    stroke-width: 4px;
  }

  /* A cloned symbol instance inside an use-element shadow tree should match
     rules of symbol tag, instead of svg tag. */
  svg {
    fill: red;
  }
  symbol {
    fill: lime;
  }
</style>

<body style="background-color: lime;">

<svg>
  <defs>
    <circle id="circle" cx="25" cy="25" r="25" />
    <rect id="rect" width="100" height="100"/>
    <symbol id="symbol">
      <circle cx="25" cy="25" r="25" />
    </symbol>
  </defs>

  <g id="outer">
    <use xlink:href="#circle" fill="lime" width="50" height="50" />
  </g>
</svg>

<div style="left: 0px; top: 10px;">
  <svg>
    <use xlink:href="#rect" fill="lime" width="50" height="50" />
  </svg>
</div>

<div style="left: 110px; top: 10px;">
  <svg>
    <use xlink:href="#symbol" fill="lime" width="50" height="50" />
  </svg>
</div>

<div style="left: 220px; top: 10px;">
  <svg>
    <use xlink:href="#symbol" width="50" height="50" />
  </svg>
</div>

</body>
</html>