blob: 440d8d23adcde54adfb966a50297d4112d3b6049 (
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
---
title: <shadow>
slug: Web/HTML/Element/Shadow
translation_of: Web/HTML/Element/shadow
---
<p>{{obsolete_header}}</p>
<p><span class="seoSummary"><strong>HTML <code><shadow></code> 元素 </strong>— <a href="/en-US/docs/Web/Web_Components">Web 组件</a>技术套件的废弃部分 — 目的是用作 Shadow DOM {{glossary("insertion point")}}。如果你在 shadow host 下面创建了多个 shadow root,你就可能已经使用了它。在正常的 HTML 没有任何用处。</span></p>
<table class="properties">
<tbody>
<tr>
<th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">内容分类</a></th>
<td><a href="/en-US/docs/Web/HTML/Content_categories#Transparent_content_model">透明内容</a></td>
</tr>
<tr>
<th scope="row">允许的内容</th>
<td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">流式内容</a></td>
</tr>
<tr>
<th scope="row">标签省略</th>
<td>{{no_tag_omission}}</td>
</tr>
<tr>
<th scope="row">允许的父元素</th>
<td>任何接受流式内容的元素 </td>
</tr>
<tr>
<th scope="row">允许的 ARIA 角色</th>
<td>无</td>
</tr>
<tr>
<th scope="row">DOM 接口</th>
<td>{{domxref("HTMLShadowElement")}}</td>
</tr>
</tbody>
</table>
<h2 id="属性">属性</h2>
<p>这个元素支持 <a href="/en-US/docs/Web/HTML/Global_attributes">全局属性</a>。</p>
<h2 id="示例">示例</h2>
<p>这里是一个使用 <code><shadow></code> 元素的简单示例。它是个包含所有所需东西的 HTML 文件。</p>
<div class="note">
<p><strong>注:</strong>这是个实验性的技术。为了使这个代码有效,你使用的浏览器必须支持 Web 组件。请见<a href="/en-US/docs/Web/Web_Components#Enabling_Web_Components_in_Firefox">在 Firefox 中开启 Web 组件</a>。</p>
</div>
<pre class="brush: html"><html>
<head></head>
<body>
<!-- This <div> will hold the shadow roots. -->
<div>
<!-- This heading will not be displayed -->
<h4>My Original Heading</h4>
</div>
<script>
// Get the <div> above with its content
var origContent = document.querySelector('div');
// Create the first shadow root
var shadowroot1 = origContent.createShadowRoot();
// Create the second shadow root
var shadowroot2 = origContent.createShadowRoot();
// Insert something into the older shadow root
shadowroot1.innerHTML =
'<p>Older shadow root inserted by
&lt;shadow&gt;</p>';
// Insert into younger shadow root, including <shadow>.
// The previous markup will not be displayed unless
// <shadow> is used below.
shadowroot2.innerHTML =
'<shadow></shadow> <p>Younger shadow
root, displayed because it is the youngest.</p>';
</script>
</body>
</html>
</pre>
<p>如果你在 Web 浏览器中展示它,它应该是这样:</p>
<p><img alt="shadow example" src="https://mdn.mozillademos.org/files/10083/shadow-example.png" style="height: 343px; width: 641px;"></p>
<h2 id="规范">规范</h2>
<table class="spec-table standard-table">
<tbody>
<tr>
<th scope="col">Specification</th>
<th scope="col">Status</th>
<th scope="col">Comment</th>
</tr>
<tr>
<td>{{SpecName('Shadow DOM', "#the-shadow-element", "shadow")}}</td>
<td>{{Spec2('Shadow DOM')}}</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="浏览器兼容性">浏览器兼容性</h2>
<p>{{CompatibilityTable}}</p>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari (WebKit)</th>
</tr>
<tr>
<td>Basic support</td>
<td>35</td>
<td>{{CompatGeckoDesktop("28")}}<sup>[1]</sup></td>
<td>{{CompatNo}}</td>
<td>26</td>
<td>{{CompatNo}}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Phone</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Basic support</td>
<td>37</td>
<td>{{CompatGeckoMobile("28")}}<sup>[1]</sup></td>
<td>{{CompatNo}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<p>[1] 如果 Firefox 上没有开启 Shadow DOM, <code><shadow></code> 元素会表现为 {{domxref("HTMLUnknownElement")}},Shadow DOM 首先在 Firefox 33 中实现,并且在首选项 <code>dom.webcomponents.enabled</code> 背后,它默认是关闭的。</p>
<h2 id="另见">另见</h2>
<ul>
<li><a href="/en-US/docs/Web/Web_Components">Web 组件</a></li>
<li>{{HTMLElement("content")}}, {{HTMLElement("slot")}}, {{HTMLElement("template")}}, {{HTMLElement("element")}}</li>
</ul>
<div>{{HTMLRef}}</div>
|