aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/api/element
diff options
context:
space:
mode:
authorAtsuto Yamashita <atyamash@yahoo-corp.jp>2022-03-15 19:47:35 +0900
committerGitHub <noreply@github.com>2022-03-15 19:47:35 +0900
commit9bf38df91fadd199a5ea45ad79d5e111ddfb3fe0 (patch)
tree71952407ea41c86feabef4214610d59e15aae55d /files/ja/web/api/element
parentc2678137db5f97ad1fe39e872529159a1afafec1 (diff)
parent9e7fbb013772ebab9b35185f0d0836995acbe6db (diff)
downloadtranslated-content-9bf38df91fadd199a5ea45ad79d5e111ddfb3fe0.tar.gz
translated-content-9bf38df91fadd199a5ea45ad79d5e111ddfb3fe0.tar.bz2
translated-content-9bf38df91fadd199a5ea45ad79d5e111ddfb3fe0.zip
Merge branch 'main' into fix-typo-client-side-web-apis-intro-ja
Diffstat (limited to 'files/ja/web/api/element')
-rw-r--r--files/ja/web/api/element/after/index.html90
-rw-r--r--files/ja/web/api/element/after/index.md90
-rw-r--r--files/ja/web/api/element/animate/index.html120
-rw-r--r--files/ja/web/api/element/animate/index.md81
-rw-r--r--files/ja/web/api/element/append/index.html100
-rw-r--r--files/ja/web/api/element/append/index.md99
-rw-r--r--files/ja/web/api/element/attributes/index.html118
-rw-r--r--files/ja/web/api/element/attributes/index.md90
-rw-r--r--files/ja/web/api/element/before/index.html91
-rw-r--r--files/ja/web/api/element/before/index.md92
-rw-r--r--files/ja/web/api/element/childelementcount/index.html42
-rw-r--r--files/ja/web/api/element/childelementcount/index.md43
-rw-r--r--files/ja/web/api/element/children/index.html58
-rw-r--r--files/ja/web/api/element/children/index.md55
-rw-r--r--files/ja/web/api/element/classname/index.html35
-rw-r--r--files/ja/web/api/element/classname/index.md61
-rw-r--r--files/ja/web/api/element/clientheight/index.html67
-rw-r--r--files/ja/web/api/element/clientheight/index.md51
-rw-r--r--files/ja/web/api/element/clientleft/index.html86
-rw-r--r--files/ja/web/api/element/clientleft/index.md73
-rw-r--r--files/ja/web/api/element/clienttop/index.html37
-rw-r--r--files/ja/web/api/element/clienttop/index.md77
-rw-r--r--files/ja/web/api/element/clientwidth/index.html65
-rw-r--r--files/ja/web/api/element/clientwidth/index.md49
-rw-r--r--files/ja/web/api/element/closest/index.html149
-rw-r--r--files/ja/web/api/element/closest/index.md127
-rw-r--r--files/ja/web/api/element/computedstylemap/index.md94
-rw-r--r--files/ja/web/api/element/createshadowroot/index.md41
-rw-r--r--files/ja/web/api/element/error_event/index.html2
-rw-r--r--files/ja/web/api/element/firstelementchild/index.md55
-rw-r--r--files/ja/web/api/element/getanimations/index.md73
-rw-r--r--files/ja/web/api/element/getattribute/index.html81
-rw-r--r--files/ja/web/api/element/getattribute/index.md78
-rw-r--r--files/ja/web/api/element/getattributenames/index.html70
-rw-r--r--files/ja/web/api/element/getattributenames/index.md86
-rw-r--r--files/ja/web/api/element/getattributenode/index.html63
-rw-r--r--files/ja/web/api/element/getattributenode/index.md51
-rw-r--r--files/ja/web/api/element/getattributens/index.html47
-rw-r--r--files/ja/web/api/element/getattributens/index.md100
-rw-r--r--files/ja/web/api/element/getboundingclientrect/index.html112
-rw-r--r--files/ja/web/api/element/getboundingclientrect/index.md179
-rw-r--r--files/ja/web/api/element/getclientrects/index.html231
-rw-r--r--files/ja/web/api/element/getclientrects/index.md225
-rw-r--r--files/ja/web/api/element/getelementsbyclassname/index.html113
-rw-r--r--files/ja/web/api/element/getelementsbyclassname/index.md110
-rw-r--r--files/ja/web/api/element/getelementsbytagname/index.html55
-rw-r--r--files/ja/web/api/element/getelementsbytagname/index.md54
-rw-r--r--files/ja/web/api/element/getelementsbytagnamens/index.html50
-rw-r--r--files/ja/web/api/element/getelementsbytagnamens/index.md49
-rw-r--r--files/ja/web/api/element/id/index.html57
-rw-r--r--files/ja/web/api/element/id/index.md46
-rw-r--r--files/ja/web/api/element/index.html464
-rw-r--r--files/ja/web/api/element/index.md442
-rw-r--r--files/ja/web/api/element/innerhtml/index.html213
-rw-r--r--files/ja/web/api/element/innerhtml/index.md245
-rw-r--r--files/ja/web/api/element/localname/index.html87
-rw-r--r--files/ja/web/api/element/localname/index.md85
-rw-r--r--files/ja/web/api/element/namespaceuri/index.html35
-rw-r--r--files/ja/web/api/element/namespaceuri/index.md58
-rw-r--r--files/ja/web/api/element/nextelementsibling/index.md59
-rw-r--r--files/ja/web/api/element/outerhtml/index.html118
-rw-r--r--files/ja/web/api/element/outerhtml/index.md132
-rw-r--r--files/ja/web/api/element/part/index.md59
-rw-r--r--files/ja/web/api/element/prefix/index.html48
-rw-r--r--files/ja/web/api/element/prefix/index.md48
-rw-r--r--files/ja/web/api/element/previouselementsibling/index.md68
-rw-r--r--files/ja/web/api/element/replacechildren/index.md157
-rw-r--r--files/ja/web/api/element/requestpointerlock/index.md40
-rw-r--r--files/ja/web/api/element/scrollheight/index.html173
-rw-r--r--files/ja/web/api/element/scrollheight/index.md167
-rw-r--r--files/ja/web/api/element/scrollleft/index.html111
-rw-r--r--files/ja/web/api/element/scrollleft/index.md98
-rw-r--r--files/ja/web/api/element/scrollleftmax/index.md35
-rw-r--r--files/ja/web/api/element/scrolltop/index.html92
-rw-r--r--files/ja/web/api/element/scrolltop/index.md110
-rw-r--r--files/ja/web/api/element/scrollwidth/index.html125
-rw-r--r--files/ja/web/api/element/scrollwidth/index.md115
-rw-r--r--files/ja/web/api/element/sethtml/index.md73
-rw-r--r--files/ja/web/api/element/tagname/index.html36
-rw-r--r--files/ja/web/api/element/tagname/index.md63
-rw-r--r--files/ja/web/api/element/toggleattribute/index.md97
81 files changed, 4381 insertions, 3440 deletions
diff --git a/files/ja/web/api/element/after/index.html b/files/ja/web/api/element/after/index.html
deleted file mode 100644
index 52186ca2fb..0000000000
--- a/files/ja/web/api/element/after/index.html
+++ /dev/null
@@ -1,90 +0,0 @@
----
-title: Element.after()
-slug: Web/API/Element/after
-tags:
- - API
- - DOM
- - Method
- - Node
- - Reference
-browser-compat: api.Element.after
-translation_of: Web/API/Element/after
----
-<div>{{APIRef("DOM")}}</div>
-
-<p><code><strong>Element.after()</strong></code> は、<code>Element</code> の親の子リストの、<code>Element</code> の直後に、 {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトのセットを挿入します。 {{domxref("DOMString")}} オブジェクトは {{domxref("Text")}} ノードと等価なノードとして挿入されます。</p>
-
-<h2 id="Syntax">構文</h2>
-
-<pre class="brush: js">
-after(... nodes)
-</pre>
-
-<h3 id="Parameters">引数</h3>
-
-<dl>
- <dt><code>nodes</code></dt>
- <dd>挿入する一連の {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトです。</dd>
-</dl>
-
-<h3 id="Exceptions">例外</h3>
-
-<ul>
- <li>{{domxref("HierarchyRequestError")}}: ノードを階層内の指定の位置に挿入できません。</li>
-</ul>
-
-<h2 id="Examples">例</h2>
-
-<h3 id="Inserting_an_element">要素の挿入</h3>
-
-<pre class="brush: js">let container = document.createElement("div");
-let p = document.createElement("p");
-container.appendChild(p);
-let span = document.createElement("span");
-
-p.after(span);
-
-console.log(container.outerHTML);
-// "&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;"
-</pre>
-
-<h3 id="Inserting_text">テキストの挿入</h3>
-
-<pre class="brush: js">let container = document.createElement("div");
-let p = document.createElement("p");
-container.appendChild(p);
-
-p.after("Text");
-
-console.log(container.outerHTML);
-// "&lt;div&gt;&lt;p&gt;&lt;/p&gt;Text&lt;/div&gt;"</pre>
-
-<h3 id="Inserting_an_element_and_text">要素とテキストの挿入</h3>
-
-<pre class="brush: js">let container = document.createElement("div");
-let p = document.createElement("p");
-container.appendChild(p);
-let span = document.createElement("span");
-
-p.after(span, "Text");
-
-console.log(container.outerHTML);
-// "&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;span&gt;&lt;/span&gt;Text&lt;/div&gt;"</pre>
-
-<h2 id="Specification">仕様書</h2>
-
-{{Specifications}}
-
-<h2 id="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat}}</p>
-
-<h2 id="See_also">関連情報</h2>
-
-<ul>
- <li>{{domxref("Element.before()")}}</li>
- <li>{{domxref("Element.append()")}}</li>
- <li>{{domxref("Node.appendChild()")}}</li>
- <li>{{domxref("Element.insertAdjacentElement()")}}</li>
- <li>{{domxref("NodeList")}}</li>
-</ul>
diff --git a/files/ja/web/api/element/after/index.md b/files/ja/web/api/element/after/index.md
new file mode 100644
index 0000000000..40344ddd30
--- /dev/null
+++ b/files/ja/web/api/element/after/index.md
@@ -0,0 +1,90 @@
+---
+title: Element.after()
+slug: Web/API/Element/after
+tags:
+ - API
+ - DOM
+ - メソッド
+ - Node
+ - リファレンス
+browser-compat: api.Element.after
+translation_of: Web/API/Element/after
+---
+{{APIRef("DOM")}}
+
+**`Element.after()`** は、一連の {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトをこの `Element` の親の子リストの、 `Element` の直後に挿入します。 {{domxref("DOMString")}} オブジェクトは {{domxref("Text")}} ノードと等価なノードとして挿入されます。
+
+## 構文
+
+```js
+after(... nodes)
+```
+
+### 引数
+
+- `nodes`
+ - : 挿入する一連の {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトです。
+
+### 例外
+
+- `HierarchyRequestError` {{DOMxRef("DOMException")}}
+ - : ノードが階層構造の中の指定された位置に挿入できなかったときに発生します。
+
+## 例
+
+### 要素の挿入
+
+```js
+let container = document.createElement("div");
+let p = document.createElement("p");
+container.appendChild(p);
+let span = document.createElement("span");
+
+p.after(span);
+
+console.log(container.outerHTML);
+// "<div><p></p><span></span></div>"
+```
+
+### テキストの挿入
+
+```js
+let container = document.createElement("div");
+let p = document.createElement("p");
+container.appendChild(p);
+
+p.after("Text");
+
+console.log(container.outerHTML);
+// "<div><p></p>Text</div>"
+```
+
+### 要素とテキストの挿入
+
+```js
+let container = document.createElement("div");
+let p = document.createElement("p");
+container.appendChild(p);
+let span = document.createElement("span");
+
+p.after(span, "Text");
+
+console.log(container.outerHTML);
+// "<div><p></p><span></span>Text</div>"
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Element.before()")}}
+- {{domxref("Element.append()")}}
+- {{domxref("Node.appendChild()")}}
+- {{domxref("Element.insertAdjacentElement()")}}
+- {{domxref("NodeList")}}
diff --git a/files/ja/web/api/element/animate/index.html b/files/ja/web/api/element/animate/index.html
deleted file mode 100644
index 661f224477..0000000000
--- a/files/ja/web/api/element/animate/index.html
+++ /dev/null
@@ -1,120 +0,0 @@
----
-title: Element.animate()
-slug: Web/API/Element/animate
-translation_of: Web/API/Element/animate
----
-<div>{{APIRef('Web Animations')}} {{SeeCompatTable}}</div>
-
-<p>{{domxref("Element")}} インターフェースの <strong><code>animate()</code></strong> メソッドは、新たに {{domxref("Animation")}} の作成、対象要素への適用、そしてアニメーションの再生を行うショートカットメソッドです。戻り値として {{domxref("Animation")}} オブジェクトのインスタンスを返します。</p>
-
-<h2 id="構文">構文</h2>
-
-<pre class="syntaxbox"><var>element</var>.animate(<var>keyframes</var>, <var>options</var>);
-</pre>
-
-<h3 id="引数">引数</h3>
-
-<dl>
- <dt><code>keyframes</code></dt>
-</dl>
-
-<ol>
- <li>列挙可能な値の配列をプロパティに持つ keyframes オブジェクト</li>
- <li>keyframes オブジェクトから成る配列</li>
-</ol>
-
-<dl>
- <dd>のどちらかを指定します。keyframes 形式の詳細については <a href="/ja/docs/Web/API/Web_Animations_API/Keyframe_Formats">Keyframe Formats</a> で確認できます。</dd>
- <dd>
- <ol>
- <li>変化させたい CSS プロパティをキーとし、そのプロパティ値を遷移の順番に並べた配列を値としたオブジェクト
- <pre class="brush: js"><em>element.</em>animate({
-  opacity: [ 0, 1 ], // [ フレーム 1, フレーム 2 ]
-  color: [ "#fff", "#000" ] // [ フレーム 1, フレーム 2 ]
-}, 2000);
-</pre>
- </li>
- <li>CSS プロパティとそのプロパティ値からなるオブジェクトを、遷移の順番に並べた配列
- <pre class="brush: js"><em>element</em>.animate([
-  { // フレーム 1
-  opacity: 0,
-  color: "#fff"
- },
-  { // フレーム 2
-  opacity: 1,
- ​ color: "#000"
- }
-], 2000);</pre>
- </li>
- </ol>
- </dd>
- <dt><code>options</code></dt>
- <dd>アニメーションの再生時間を表す ms 単位の整数値、または  <a href="/ja/docs/Web/API/Web_Animations_API/Animation_timing_options">animation timing options</a> を含むオブジェクトを渡す必要があります。後者の場合、<a href="/ja/docs/Web/API/Web_Animations_API/Animation_timing_options">animation timing options</a> のプロパティに加え、以下のようなプロパティも追加して <code>animate()</code> に渡すことができます。</dd>
-</dl>
-
-<h4 id="keyframeOptions_に追加できるプロパティ">keyframeOptions に追加できるプロパティ</h4>
-
-<dl>
- <dt><code>id</code></dt>
- <dd>アニメーションを参照する文字列</dd>
-</dl>
-
-<dl>
- <dt><code>composite</code></dt>
- <dd>Determines how values are combined between this animation and other, separate animations that do not specify their own specific composite operation. デフォルト値は <code>replace</code> です。
- <ul>
- <li><code>add</code> dictates an additive effect, where each successive iteration builds on the last. 例として <code>transform</code> <code>を挙げると</code>、<code>translateX(-200px)</code> は自身よりも前に指定されていた <code>rotate(20deg)</code> の値を上書きすることはありませんが、合成結果は <code>translateX(-200px) rotate(20deg)</code> になります。</li>
- <li><code>accumulate</code> を指定した場合、<code>add</code> に似ていますがよりスマートな結果が得られ、<code>blur(2)</code> と <code>blur(5)</code> の合成結果は <code>blur(7)</code> になります(<code>blur(2) blur(5)</code> ではありません)。</li>
- <li><code>replace</code> を指定した場合、前回の値は新しい値で上書きされます。</li>
- </ul>
- </dd>
- <dt><code>iterationComposite</code></dt>
- <dd>Defines the way animation values build from iteration to iteration. <code>accumulate</code> または <code>replace</code> を指定できます(上記参照)。デフォルト値は <code>replace</code> です。</dd>
-</dl>
-
-<h3 id="戻り値">戻り値</h3>
-
-<p>{{domxref("Animation")}} を返します。</p>
-
-<h2 id="使用例">使用例</h2>
-
-<p><a href="https://codepen.io/rachelnabors/pen/rxpmJL/?editors=0010">Down the Rabbit Hole (with the Web Animation API)</a> のデモでは、上に向かって永遠に流れ続けるアニメーションが <code>#tunnel</code> 要素に施されています。ここでは、アニメーションを素早く作成して再生できる <code>animate()</code> メソッドが用いられています。keyframes として渡されているオブジェクト配列と、timing options として渡されているオブジェクトに注目してください。</p>
-
-<pre class="brush: js">document.getElementById("tunnel").animate([
-  // keyframes
-  { transform: 'translate3D(0, 0, 0)' },
-  { transform: 'translate3D(0, -300px, 0)' }
-], {
-  // timing options
-  duration: 1000,
-  iterations: Infinity
-});
-</pre>
-
-<h2 id="仕様">仕様</h2>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">策定状況</th>
- <th scope="col">備考</th>
- </tr>
- <tr>
- <td>{{SpecName('Web Animations', '#the-animatable-interface', 'animate()' )}}</td>
- <td>{{Spec2('Web Animations')}}</td>
- <td>Editor's draft.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="ブラウザ実装状況">ブラウザ実装状況</h2>
-
-<p>{{Compat("api.Element.animate")}}</p>
-
-<h2 id="参考情報">参考情報</h2>
-
-<ul>
- <li><a href="/ja/docs/Web/API/Web_Animations_API">Web Animations API</a></li>
- <li>{{domxref("Animation")}}</li>
-</ul>
diff --git a/files/ja/web/api/element/animate/index.md b/files/ja/web/api/element/animate/index.md
new file mode 100644
index 0000000000..8085c0925b
--- /dev/null
+++ b/files/ja/web/api/element/animate/index.md
@@ -0,0 +1,81 @@
+---
+title: Element.animate()
+slug: Web/API/Element/animate
+tags:
+ - API
+ - アニメーション
+ - Element
+ - メソッド
+ - リファレンス
+ - ウェブアニメーション
+browser-compat: api.Element.animate
+translation_of: Web/API/Element/animate
+---
+{{APIRef('Web Animations')}}
+
+{{domxref("Element")}} インターフェイスの **`animate()`** メソッドは、新しい {{domxref("Animation")}} の生成、この要素への適用、そしてアニメーションの再生を行うショートカットメソッドです。生成した {{domxref("Animation")}} オブジェクトのインスタンスを返します。
+
+> **Note:** 要素には複数のアニメーションを適用することができます。 {{domxref("Element.getAnimations()")}} を呼び出すと、要素に作用するアニメーションのリストを取得することができます。
+
+## 構文
+
+```js
+animate(keyframes, options)
+```
+
+### 引数
+
+- `keyframes`
+ - : キーフレームオブジェクトの配列、**または**プロパティが反復処理可能な値の配列である単一のキーフレームオブジェクトのどちらかです。詳しくは [Keyframe の書式](/ja/docs/Web/API/Web_Animations_API/Keyframe_Formats)を参照してください。
+- `options`
+
+ - : **アニメーションの再生時間を表す整数値**(ミリ秒単位)、**または** [`KeyframeEffect()` のオプションの引数](/ja/docs/Web/API/KeyframeEffect)や次のオプションで記述された 1 つ以上のタイミングプロパティを含むオブジェクトのどちらかです。
+
+ - `id {{optional_inline}}`
+ - : `animate()` の固有のプロパティです。このアニメーションを参照する [`DOMString`](/ja/docs/Web/API/DOMString) です。
+
+### 返値
+
+{{domxref("Animation")}} を返します。
+
+## 例
+
+[Down the Rabbit Hole (with the Web Animation API)](https://codepen.io/rachelnabors/pen/rxpmJL/?editors=0010) のデモでは、上に向かって永遠に流れ続けるアニメーションが `#tunnel` 要素に施されています。ここでは、アニメーションを素早く作成して再生できる `animate()` メソッドが用いられています。keyframes として渡されているオブジェクト配列と、timing options として渡されているオブジェクトに注目してください。
+
+```js
+document.getElementById("tunnel").animate([
+ // keyframes
+ { transform: 'translateY(0px)' },
+ { transform: 'translateY(-300px)' }
+], {
+ // timing options
+ duration: 1000,
+ iterations: Infinity
+});
+```
+
+### 暗黙の開始/終了キーフレーム
+
+新しいバージョンのブラウザーでは、アニメーションの開始または終了状態のみ(つまり、単一のキーフレーム)で設定することができ、可能であればブラウザーがアニメーションのもう一方を推測します。例えば、[この簡単なアニメーション](https://mdn.github.io/dom-examples/web-animations-api/implicit-keyframes.html) を考えてみましょう。 Keyframe オブジェクトは次のようなものです。
+
+```js
+let rotate360 = [
+ { transform: 'rotate(360deg)' }
+];
+```
+
+アニメーションの終了状態を指定しただけで、開始状態は暗黙になっています。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [ウェブアニメーション API](/ja/docs/Web/API/Web_Animations_API)
+- {{domxref("Element.getAnimations()")}}
+- {{domxref("Animation")}}
diff --git a/files/ja/web/api/element/append/index.html b/files/ja/web/api/element/append/index.html
deleted file mode 100644
index 82feaa6f91..0000000000
--- a/files/ja/web/api/element/append/index.html
+++ /dev/null
@@ -1,100 +0,0 @@
----
-title: Element.append()
-slug: Web/API/Element/append
-tags:
- - API
- - DOM
- - Method
- - Node
- - Element
- - Reference
-browser-compat: api.Element.append
-translation_of: Web/API/Element/append
-original_slug: Web/API/ParentNode/append
----
-<p>{{APIRef("DOM")}}</p>
-
-<p><strong><code>Element.append()</code></strong> メソッドは、一連の {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトを <code>Element</code> のの最後の子の後に挿入します。 {{domxref("DOMString")}} オブジェクトは等価な {{domxref("Text")}} ノードとして挿入されます。</p>
-
-<p>{{domxref("Node.appendChild()")}} との違いは次の通りです。</p>
-
-<ul>
- <li><code>Element.append()</code> は {{domxref("DOMString")}} も追加することができますが、<code>Node.appendChild()</code> は{{domxref("Node")}} オブジェクトのみを受け付けます。</li>
- <li><code>Element.append()</code> には返値がありませんが、<code>Node.appendChild()</code> は追加された{{domxref("Node")}} オブジェクトを返します。</li>
- <li><code>Element.append()</code> は複数のノードや文字列を追加することができますが、<code>Node.appendChild()</code> はノードを 1 つだけしか追加することができせん。</li>
-</ul>
-
-<h2 id="Syntax">構文</h2>
-
-<pre class="brush: js">
-append(...nodesOrDOMStrings)
-</pre>
-
-<h3 id="Parameters">引数</h3>
-
-<dl>
- <dt><code>nodesOrDOMStrings</code></dt>
- <dd>挿入する一連の {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトです。</dd>
-</dl>
-
-<h3 id="Exceptions">例外</h3>
-
-<ul>
- <li>{{domxref("HierarchyRequestError")}}: ノードを階層の特定の位置に挿入することができません。</li>
-</ul>
-
-<h2 id="Examples">例</h2>
-
-<h3 id="Appending_an_element">要素の追加</h3>
-
-<pre class="brush: js">let div = document.createElement("div")
-let p = document.createElement("p")
-div.append(p)
-
-console.log(div.childNodes) // NodeList [ &lt;p&gt; ]
-</pre>
-
-<h3 id="Appending_text">テキストの追加</h3>
-
-<pre class="brush: js">let div = document.createElement("div")
-div.append("Some text")
-
-console.log(div.textContent) // "Some text"</pre>
-
-<h3 id="Appending_an_element_and_text">要素とテキストの追加</h3>
-
-<pre class="brush: js">let div = document.createElement("div")
-let p = document.createElement("p")
-div.append("Some text", p)
-
-console.log(div.childNodes) // NodeList [ #text "Some text", &lt;p&gt; ]</pre>
-
-<h3 id="The_append_method_is_unscopable">append メソッドはスコープが効かない</h3>
-
-<p><code>append()</code> メソッドは <code>with</code> 文の中ではスコープが効きません。詳しくは {{jsxref("Symbol.unscopables")}} をご覧ください。</p>
-
-<pre class="brush: js">let div = document.createElement("div")
-
-with(div) {
- append("foo")
-}
-// ReferenceError: append is not defined </pre>
-
-
-<h2 id="Specifications">仕様書</h2>
-
-{{Specifications}}
-
-<h2 id="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat}}</p>
-
-<h2 id="See_also">関連情報</h2>
-
-<ul>
- <li>{{domxref("Element.prepend()")}}</li>
- <li>{{domxref("Node.appendChild()")}}</li>
- <li>{{domxref("Element.after()")}}</li>
- <li>{{domxref("Element.insertAdjacentElement()")}}</li>
- <li>{{domxref("NodeList")}}</li>
-</ul>
diff --git a/files/ja/web/api/element/append/index.md b/files/ja/web/api/element/append/index.md
new file mode 100644
index 0000000000..ffe3f44068
--- /dev/null
+++ b/files/ja/web/api/element/append/index.md
@@ -0,0 +1,99 @@
+---
+title: Element.append()
+slug: Web/API/Element/append
+tags:
+ - API
+ - DOM
+ - メソッド
+ - Node
+ - Element
+ - リファレンス
+browser-compat: api.Element.append
+translation_of: Web/API/Element/append
+original_slug: Web/API/ParentNode/append
+---
+{{APIRef("DOM")}}
+
+**`Element.append()`** メソッドは、一連の {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトを `Element` のの最後の子の後に挿入します。 {{domxref("DOMString")}} オブジェクトは等価な {{domxref("Text")}} ノードとして挿入されます。
+
+{{domxref("Node.appendChild()")}} との違いは次の通りです。
+
+- `Element.append()` は {{domxref("DOMString")}} も追加することができますが、`Node.appendChild()` は{{domxref("Node")}} オブジェクトのみを受け付けます。
+- `Element.append()` には返値がありませんが、`Node.appendChild()` は追加された {{domxref("Node")}} オブジェクトを返します。
+- `Element.append()` は複数のノードや文字列を追加することができますが、`Node.appendChild()` はノードを 1 つだけしか追加することができせん。
+
+## 構文
+
+```js
+append(...nodesOrDOMStrings)
+```
+
+### 引数
+
+- `nodesOrDOMStrings`
+ - : 挿入する一連の {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトです。
+
+### 例外
+
+- `HierarchyRequestError` {{DOMxRef("DOMException")}}
+ - : ノードが階層構造の中の指定された位置に挿入できなかったときに発生します。
+
+## 例
+
+### 要素の追加
+
+```js
+let div = document.createElement("div")
+let p = document.createElement("p")
+div.append(p)
+
+console.log(div.childNodes) // NodeList [ <p> ]
+```
+
+### テキストの追加
+
+```js
+let div = document.createElement("div")
+div.append("Some text")
+
+console.log(div.textContent) // "Some text"
+```
+
+### 要素とテキストの追加
+
+```js
+let div = document.createElement("div")
+let p = document.createElement("p")
+div.append("Some text", p)
+
+console.log(div.childNodes) // NodeList [ #text "Some text", <p> ]
+```
+
+### append メソッドはスコープが効かない
+
+`append()` メソッドは `with` 文の中ではスコープが効きません。詳しくは {{jsxref("Symbol.unscopables")}} をご覧ください。
+
+```js
+let div = document.createElement("div")
+
+with(div) {
+ append("foo")
+}
+// ReferenceError: append is not defined
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Element.prepend()")}}
+- {{domxref("Node.appendChild()")}}
+- {{domxref("Element.after()")}}
+- {{domxref("Element.insertAdjacentElement()")}}
+- {{domxref("NodeList")}}
diff --git a/files/ja/web/api/element/attributes/index.html b/files/ja/web/api/element/attributes/index.html
deleted file mode 100644
index f3653263ef..0000000000
--- a/files/ja/web/api/element/attributes/index.html
+++ /dev/null
@@ -1,118 +0,0 @@
----
-title: Element.attributes
-slug: Web/API/Element/attributes
-tags:
- - API
- - Attributes
- - DOM
- - Element
- - Property
- - プロパティ
- - リファレンス
- - 属性
-translation_of: Web/API/Element/attributes
----
-<p>{{ APIRef("DOM") }}</p>
-
-<p><strong><code>Element.attributes</code></strong> プロパティは、そのノードに登録された全ての属性ノードのコレクションを返却します。返却される値は {{domxref("NamedNodeMap")}} であり、 <code><strong>Array</strong></code> ではありません。つまり、 {{jsxref("Array")}} のメソッドは持っておらず、 {{domxref("Attr")}} ノードのインデックスはブラウザーによって変わる可能性があります。より正確に言うと、 <code><strong>attributes</strong></code> はその属性に関するあらゆる情報を表す文字列のキーと値の組です。</p>
-
-<h2 id="Syntax" name="Syntax">構文</h2>
-
-<pre class="syntaxbox">var <em>attr</em> =<em> element</em>.attributes;
-</pre>
-
-<h2 id="Example" name="Example">例</h2>
-
-<h3 id="Basic_examples" name="Basic_examples">基本的な例</h3>
-
-<pre class="brush: js">// ドキュメント内の最初の &lt;p&gt; 要素を取得する
-var para = document.getElementsByTagName("p")[0];
-var atts = para.attributes;</pre>
-
-<h3 id="Enumerating_elements_attributes" name="Enumerating_elements_attributes">要素の属性を列挙する</h3>
-
-<p>ある要素の全ての属性を走査したい時には、インデックスを使うと便利です。<br>
- 次の例では、 "paragraph" を id に持つ要素の全ての属性ノードを走査し、その属性の値を表示します。</p>
-
-<pre class="brush: html">&lt;!DOCTYPE html&gt;
-
-&lt;html&gt;
-
- &lt;head&gt;
- &lt;title&gt;Attributes example&lt;/title&gt;
- &lt;script type="text/javascript"&gt;
- function listAttributes() {
- var paragraph = document.getElementById("paragraph");
- var result = document.getElementById("result");
-
- // まず、最初の段落(p1)がなんらかの属性を持っているか確かめよう
- if (paragraph.hasAttributes()) {
- var attrs = paragraph.attributes;
- var output = "";
- for(var i = attrs.length - 1; i &gt;= 0; i--) {
- output += attrs[i].name + "-&gt;" + attrs[i].value;
- }
- result.value = output;
- } else {
- result.value = "No attributes to show";
- }
- }
- &lt;/script&gt;
- &lt;/head&gt;
-
-&lt;body&gt;
- &lt;p id="paragraph" style="color: green;"&gt;Sample Paragraph&lt;/p&gt;
- &lt;form action=""&gt;
- &lt;p&gt;
- &lt;input type="button" value="Show first attribute name and value"
- onclick="listAttributes();"&gt;
- &lt;input id="result" type="text" value=""&gt;
- &lt;/p&gt;
- &lt;/form&gt;
-&lt;/body&gt;
-&lt;/html&gt;</pre>
-
-<h2 id="Specifications" name="Specifications">仕様書</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">状態</th>
- <th scope="col">備考</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('DOM WHATWG', '#dom-element-attributes', 'Element.attributes')}}</td>
- <td>{{Spec2('DOM WHATWG')}}</td>
- <td>{{SpecName('DOM3 Core')}} 以降、 {{domxref("Node")}} から {{domxref("Element")}} へ移動</td>
- </tr>
- <tr>
- <td>{{SpecName('DOM3 Core', 'core.html#ID-84CF096', 'Element.attributes')}}</td>
- <td>{{Spec2('DOM3 Core')}}</td>
- <td>{{SpecName('DOM2 Core')}} から変更無し</td>
- </tr>
- <tr>
- <td>{{SpecName('DOM2 Core', 'core.html#ID-84CF096', 'Element.attributes')}}</td>
- <td>{{Spec2('DOM2 Core')}}</td>
- <td>{{SpecName('DOM1')}}から変更無し</td>
- </tr>
- <tr>
- <td>{{SpecName('DOM1', 'level-one-core.html#ID-84CF096', 'Element.attributes')}}</td>
- <td>{{Spec2('DOM1')}}</td>
- <td>初回定義</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2>
-
-<p>{{Compat("api.Element.attributes")}}</p>
-
-<h2 id="See_also" name="See_also">関連情報</h2>
-
-<ul>
- <li>返却される値のインターフェースである {{domxref("NamedNodeMap")}}</li>
- <li><a href="http://www.quirksmode.org/dom/w3c_core.html#attributes">quirksmode</a> におけるブラウザー間の互換性への配慮</li>
-</ul>
diff --git a/files/ja/web/api/element/attributes/index.md b/files/ja/web/api/element/attributes/index.md
new file mode 100644
index 0000000000..05f85d4bf7
--- /dev/null
+++ b/files/ja/web/api/element/attributes/index.md
@@ -0,0 +1,90 @@
+---
+title: Element.attributes
+slug: Web/API/Element/attributes
+tags:
+ - API
+ - Attributes
+ - DOM
+ - Element
+ - プロパティ
+ - リファレンス
+browser-compat: api.Element.attributes
+translation_of: Web/API/Element/attributes
+---
+{{ APIRef("DOM") }}
+
+**`Element.attributes`** プロパティは、そのノードに登録されたすべての属性ノードの生きたコレクションを返却します。返却される値は {{domxref("NamedNodeMap")}} であり、 `Array` ではありません。つまり、 {{jsxref("Array")}} のメソッドは持っておらず、 {{domxref("Attr")}} ノードのインデックスはブラウザーによって変わる可能性があります。より正確に言うと、 `attributes` はその属性に関するあらゆる情報を表す文字列のキーと値の組です。
+
+## 構文
+
+```js
+var attr = element.attributes;
+```
+
+## 例
+
+### 基本的な例
+
+```js
+// 文書内の最初の <p> 要素を取得
+var para = document.getElementsByTagName("p")[0];
+var atts = para.attributes;
+```
+
+### 要素の属性を列挙する
+
+ある要素のすべての属性を走査したい場合は、数値のインデックスを使うと便利です。
+次の例では、 "paragraph" を id に持つ要素のすべての属性ノードを走査し、その属性の値を表示します。
+
+```html
+<!DOCTYPE html>
+
+<html>
+
+ <head>
+ <title>Attributes example</title>
+ <script type="text/javascript">
+ function listAttributes() {
+ var paragraph = document.getElementById("paragraph");
+ var result = document.getElementById("result");
+
+ // まず、段落に属性があるか確かめる
+ if (paragraph.hasAttributes()) {
+ var attrs = paragraph.attributes;
+ var output = "";
+ for(var i = attrs.length - 1; i >= 0; i--) {
+ output += attrs[i].name + "->" + attrs[i].value;
+ }
+ result.value = output;
+ } else {
+ result.value = "表示する属性はありません";
+ }
+ }
+ </script>
+ </head>
+
+<body>
+ <p id="paragraph" style="color: green;">サンプルの段落</p>
+ <form action="">
+ <p>
+ <input type="button" value="Show first attribute name and value"
+ onclick="listAttributes();">
+ <input id="result" type="text" value="">
+ </p>
+ </form>
+</body>
+</html>
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- 返却される値のインターフェースである {{domxref("NamedNodeMap")}}
+- [quirksmode](https://www.quirksmode.org/dom/w3c_core.html#attributes) におけるブラウザー間の互換性の考慮事項
diff --git a/files/ja/web/api/element/before/index.html b/files/ja/web/api/element/before/index.html
deleted file mode 100644
index 652f38c95f..0000000000
--- a/files/ja/web/api/element/before/index.html
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: Element.before()
-slug: Web/API/Element/before
-tags:
- - API
- - DOM
- - Method
- - Node
- - Reference
-browser-compat: api.Element.before
-translation_of: Web/API/Element/before
-original_slug: Web/API/ChildNode/before
----
-<div>{{APIRef("DOM")}}</div>
-
-<p><code><strong>Element.before()</strong></code> は一連の {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトを、この <code>Element</code> の親の子リストの中、この <code>Element</code> の直前に挿入します。 {{domxref("DOMString")}} オブジェクトは {{domxref("Text")}} ノードと等価なノードとして挿入されます。</p>
-
-<h2 id="Syntax">構文</h2>
-
-<pre class="brush: js">before(... nodes)</pre>
-
-<h3 id="Parameters">引数</h3>
-
-<dl>
- <dt><code>nodes</code></dt>
- <dd>挿入する一連の {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトです。</dd>
-</dl>
-
-<h3 id="Exceptions">例外</h3>
-
-<ul>
- <li>{{domxref("HierarchyRequestError")}}: 階層の指定の位置にノードを挿入できない。</li>
-</ul>
-
-<h2 id="Examples">例</h2>
-
-<h3 id="Inserting_an_element">要素の挿入</h3>
-
-<pre class="brush: js">let container = document.createElement("div");
-let p = document.createElement("p");
-container.appendChild(p);
-let span = document.createElement("span");
-
-p.before(span);
-
-console.log(container.outerHTML);
-// "&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;"
-</pre>
-
-<h3 id="Inserting_text">テキストの挿入</h3>
-
-<pre class="brush: js">let container = document.createElement("div");
-let p = document.createElement("p");
-container.appendChild(p);
-
-p.before("Text");
-
-console.log(container.outerHTML);
-// "&lt;div&gt;Text&lt;p&gt;&lt;/p&gt;&lt;/div&gt;"</pre>
-
-<h3 id="Inserting_an_element_and_text">要素とテキストの挿入</h3>
-
-<pre class="brush: js">let container = document.createElement("div");
-let p = document.createElement("p");
-container.appendChild(p);
-let span = document.createElement("span");
-
-p.before(span, "Text");
-
-console.log(container.outerHTML);
-// "&lt;div&gt;&lt;span&gt;&lt;/span&gt;Text&lt;p&gt;&lt;/p&gt;&lt;/div&gt;"</pre>
-
-
-<h2 id="Specification">仕様書</h2>
-
-{{Specifications}}
-
-<h2 id="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat}}</p>
-
-<h2 id="See_also">関連情報</h2>
-
-<ul>
- <li>{{domxref("Element.after()")}}</li>
- <li>{{domxref("Element.append()")}}</li>
- <li>{{domxref("Node.appendChild()")}}</li>
- <li>{{domxref("Node.insertBefore()")}}</li>
- <li>{{domxref("Element.insertAdjacentElement()")}}</li>
- <li>{{domxref("NodeList")}}</li>
-</ul>
diff --git a/files/ja/web/api/element/before/index.md b/files/ja/web/api/element/before/index.md
new file mode 100644
index 0000000000..2bef18e920
--- /dev/null
+++ b/files/ja/web/api/element/before/index.md
@@ -0,0 +1,92 @@
+---
+title: Element.before()
+slug: Web/API/Element/before
+tags:
+ - API
+ - DOM
+ - メソッド
+ - Node
+ - リファレンス
+browser-compat: api.Element.before
+translation_of: Web/API/Element/before
+original_slug: Web/API/ChildNode/before
+---
+{{APIRef("DOM")}}
+
+**`Element.before()`** は一連の {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトを、この `Element` の親の子リストの中、この `Element` の直前に挿入します。 {{domxref("DOMString")}} オブジェクトは {{domxref("Text")}} ノードと等価なノードとして挿入されます。
+
+## 構文
+
+```js
+before(... nodes)
+```
+
+### 引数
+
+- `nodes`
+ - : 挿入する一連の {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトです。
+
+### 例外
+
+- `HierarchyRequestError` {{DOMxRef("DOMException")}}
+ - : ノードが階層構造の中の指定された位置に挿入できなかったときに発生します。
+
+## 例
+
+### 要素の挿入
+
+```js
+let container = document.createElement("div");
+let p = document.createElement("p");
+container.appendChild(p);
+let span = document.createElement("span");
+
+p.before(span);
+
+console.log(container.outerHTML);
+// "<div><span></span><p></p></div>"
+```
+
+### テキストの挿入
+
+```js
+let container = document.createElement("div");
+let p = document.createElement("p");
+container.appendChild(p);
+
+p.before("Text");
+
+console.log(container.outerHTML);
+// "<div>Text<p></p></div>"
+```
+
+### 要素とテキストの挿入
+
+```js
+let container = document.createElement("div");
+let p = document.createElement("p");
+container.appendChild(p);
+let span = document.createElement("span");
+
+p.before(span, "Text");
+
+console.log(container.outerHTML);
+// "<div><span></span>Text<p></p></div>"
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Element.after()")}}
+- {{domxref("Element.append()")}}
+- {{domxref("Node.appendChild()")}}
+- {{domxref("Node.insertBefore()")}}
+- {{domxref("Element.insertAdjacentElement()")}}
+- {{domxref("NodeList")}}
diff --git a/files/ja/web/api/element/childelementcount/index.html b/files/ja/web/api/element/childelementcount/index.html
deleted file mode 100644
index c3520c9a31..0000000000
--- a/files/ja/web/api/element/childelementcount/index.html
+++ /dev/null
@@ -1,42 +0,0 @@
----
-title: Element.childElementCount
-slug: Web/API/Element/childElementCount
-tags:
- - API
- - DOM
- - Property
- - Reference
-browser-compat: api.Element.childElementCount
-translation_of: Web/API/Element/childElementCount
-original_slug: Web/API/ParentNode/childElementCount
----
-<div>{{ APIRef("DOM") }}</div>
-
-<p><code><strong>Element.childElementCount</strong></code> は読み取り専用のプロパティで、この要素の子要素の数を返します。</p>
-
-<h2 id="Syntax">構文</h2>
-
-<pre class="brush: js">element.childElementCount;</pre>
-
-<h2 id="Example">例</h2>
-
-<pre class="brush:js">let sidebar = document.getElementById('sidebar');
-if (sidebar.childElementCount &gt; 0) {
- // 何もしない
-}
-</pre>
-
-<h2 id="Specifications">仕様書</h2>
-
-{{Specifications}}
-
-<h2 id="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat}}</p>
-
-<h2 id="See_also">関連情報</h2>
-
-<ul>
- <li>{{domxref("Document.childElementCount")}}</li>
- <li>{{domxref("DocumentFragment.childElementCount")}}</li>
-</ul>
diff --git a/files/ja/web/api/element/childelementcount/index.md b/files/ja/web/api/element/childelementcount/index.md
new file mode 100644
index 0000000000..1e869a7dc2
--- /dev/null
+++ b/files/ja/web/api/element/childelementcount/index.md
@@ -0,0 +1,43 @@
+---
+title: Element.childElementCount
+slug: Web/API/Element/childElementCount
+tags:
+ - API
+ - DOM
+ - プロパティ
+ - リファレンス
+browser-compat: api.Element.childElementCount
+translation_of: Web/API/Element/childElementCount
+original_slug: Web/API/ParentNode/childElementCount
+---
+{{ APIRef("DOM") }}
+
+**`Element.childElementCount`** は読み取り専用のプロパティで、この要素の子要素の数を返します。
+
+## 構文
+
+```js
+element.childElementCount;
+```
+
+## 例
+
+```js
+let sidebar = document.getElementById('sidebar');
+if (sidebar.childElementCount > 0) {
+ // 何かを行う
+}
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Document.childElementCount")}}
+- {{domxref("DocumentFragment.childElementCount")}}
diff --git a/files/ja/web/api/element/children/index.html b/files/ja/web/api/element/children/index.html
deleted file mode 100644
index 5dd887af4f..0000000000
--- a/files/ja/web/api/element/children/index.html
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: Element.children
-slug: Web/API/Element/children
-tags:
- - API
- - DOM
- - Element
- - HTMLCollection
- - Property
- - children
-browser-compat: api.Element.children
-translation_of: Web/API/Element/children
-original_slug: Web/API/ParentNode/children
----
-<div>{{ APIRef("DOM") }}</div>
-
-<p><strong><code>children</code></strong> は読み取り専用のプロパティで、生きた {{domxref("HTMLCollection")}} で呼び出された要素の子{{domxref("Element", "要素", "", 1)}}をすべて返します。</p>
-
-<p><code>Element.children</code> は要素のノードしか含みません。すべての子ノード、例えばテキストやコメントノードなどを取得するには、 {{domxref("Node.childNodes")}} を使用してください。</p>
-
-<h2 id="Syntax">構文</h2>
-
-<pre class="brush: js">
-// Getter
-collection = myElement.children;
-
-// No setter; read-only property
-</pre>
-
-<h3 id="Return_value">返値</h3>
-
-<p>生きた {{ domxref("HTMLCollection") }} で、 <code><var>node</var></code> の子の DOM 要素の順序付きコレクションを返します。コレクションの {{domxref("HTMLCollection.item()", "item()")}} メソッドか、 JavaScript の配列スタイルの記法を使って、コレクション内の個々の子ノードにアクセスすることができます。</p>
-
-<p>ノードが子要素を持たない場合、 <code>children</code> は要素を含まず、<code>length</code> は <code>0</code> です。</p>
-
-<h2 id="Example">例 </h2>
-
-<pre class="brush: js">const myElement = document.getElementById('foo');
-for (let i = 0; i &lt; myElement.children.length; i++) {
- console.log(myElement.children[i].tagName);
-}
-</pre>
-
-<h2 id="Specification">仕様書</h2>
-
-{{Specifications}}
-
-<h2 id="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat}}</p>
-
-<h2 id="See_also">関連情報</h2>
-
-<ul>
- <li>
- {{domxref("Node.childNodes")}}
- </li>
-</ul>
diff --git a/files/ja/web/api/element/children/index.md b/files/ja/web/api/element/children/index.md
new file mode 100644
index 0000000000..01e0dc6627
--- /dev/null
+++ b/files/ja/web/api/element/children/index.md
@@ -0,0 +1,55 @@
+---
+title: Element.children
+slug: Web/API/Element/children
+tags:
+ - API
+ - DOM
+ - Element
+ - HTMLCollection
+ - プロパティ
+ - children
+browser-compat: api.Element.children
+translation_of: Web/API/Element/children
+original_slug: Web/API/ParentNode/children
+---
+{{ APIRef("DOM") }}
+
+**`children`** は読み取り専用のプロパティで、生きた {{domxref("HTMLCollection")}} で呼び出された要素の子{{domxref("Element", "要素", "", 1)}}をすべて返します。
+
+`Element.children` は要素のノードしか含みません。すべての子ノード、例えばテキストやコメントノードなどを取得するには、 {{domxref("Node.childNodes")}} を使用してください。
+
+## 構文
+
+```js
+// ゲッター
+collection = myElement.children;
+
+// セッターはありません。読み取り専用プロパティです。
+```
+
+### 返値
+
+生きた {{ domxref("HTMLCollection") }} で、 `node` の子の DOM 要素の順序付きコレクションを返します。コレクションの {{domxref("HTMLCollection.item()", "item()")}} メソッドか、 JavaScript の配列スタイルの記法を使って、コレクション内の個々の子ノードにアクセスすることができます。
+
+ノードが子要素を持たない場合、 `children` は要素を含まず、`length` は `0` です。
+
+## 例
+
+```js
+const myElement = document.getElementById('foo');
+for (let i = 0; i < myElement.children.length; i++) {
+ console.log(myElement.children[i].tagName);
+}
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Node.childNodes")}}
diff --git a/files/ja/web/api/element/classname/index.html b/files/ja/web/api/element/classname/index.html
deleted file mode 100644
index 00f15100e7..0000000000
--- a/files/ja/web/api/element/classname/index.html
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: element.className
-slug: Web/API/Element/className
-tags:
- - DOM
- - Gecko
- - Gecko DOM Reference
-translation_of: Web/API/Element/className
----
-<div>
- {{ApiRef}}</div>
-<h2 id="Summary" name="Summary">概要</h2>
-<p><strong>className</strong> は要素の <code>class</code> 属性の値の取得 / 設定に用います。</p>
-<h2 id="Syntax" name="Syntax">構文</h2>
-<pre class="syntaxbox"><var>cName</var> = <var>elementNodeReference</var>.className;
-<var>elementNodeReference</var>.className = <var>cName</var>;</pre>
-<ul>
- <li><var>cName</var> : クラス名(文字列)</li>
-</ul>
-<h2 id="Example" name="Example">例</h2>
-<pre class="brush:js">var elm = document.getElementById("div1"); //対象要素を取得
-
-if (elm.className == "fixed") {
- // 対象要素のクラス名が "fixed" であった場合の処理をここに記述
-}</pre>
-<h2 id="Notes" name="Notes">注記</h2>
-<p>"class" という語句はプログラミングに於いて様々な文脈で用いられる為、競合を防ぐために <code>className</code> という名称となっています。</p>
-<h2 id="Specification" name="Specification">仕様書</h2>
-<ul>
- <li><a href="http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-95362176">DOM Level 2 HTML: className</a></li>
-</ul>
-<h2 id="See_also" name="See_also">関連情報</h2>
-<ul>
- <li>{{domxref("element.classList")}}</li>
-</ul>
diff --git a/files/ja/web/api/element/classname/index.md b/files/ja/web/api/element/classname/index.md
new file mode 100644
index 0000000000..bbdbcc000b
--- /dev/null
+++ b/files/ja/web/api/element/classname/index.md
@@ -0,0 +1,61 @@
+---
+title: Element.className
+slug: Web/API/Element/className
+tags:
+ - API
+ - DOM
+ - Gecko
+ - プロパティ
+ - リファレンス
+browser-compat: api.Element.className
+translation_of: Web/API/Element/className
+---
+{{APIRef("DOM")}}
+
+**`className`** は {{domxref("Element")}} インターフェイスのプロパティで、この要素の [`class` 属性](/ja/docs/Web/HTML/Global_attributes/class)の値を取得したり設定したりします。
+
+## 構文
+
+```js
+var cName = elementNodeReference.className;
+elementNodeReference.className = cName;
+```
+
+- `cName` は文字列変数で、現在の要素のクラスまたは空白区切りのクラス群を表します。
+
+## 例
+
+```js
+let el = document.getElementById('item');
+
+if (el.className === 'active'){
+ el.className = 'inactive';
+} else {
+ el.className = 'active';
+}
+```
+
+## メモ
+
+このプロパティでは、 `className` という名前が `class` の代わりに使用されています。
+これは DOM を操作するために使用される多くの言語と "class" キーワードが競合するためです。
+
+`className` は {{domxref("SVGAnimatedString")}} のインスタンスにも、 `element` が {{domxref("SVGElement")}} であれば存在する可能性があります。 SVG 要素を扱っている場合は、要素の `className` は {{domxref("Element.getAttribute")}} や {{domxref("Element.setAttribute")}} を使用して取得したり設定したりした方がいいでしょう。しかし、その要素の [`class` 属性](/ja/docs/Web/HTML/Global_attributes/class)が空であった場合、 {{domxref("Element.getAttribute")}} は`""` ではなく [`null`](/ja/docs/Web/JavaScript/Reference/Global_Objects/null) を返すことに注意してください。
+
+```js
+elm.setAttribute('class', elm.getAttribute('class'))
+```
+
+> **Note:** `class` は **HTML 属性**であり、 `className` は **DOM プロパティ**です。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("element.classList")}}
diff --git a/files/ja/web/api/element/clientheight/index.html b/files/ja/web/api/element/clientheight/index.html
deleted file mode 100644
index 4cde36518d..0000000000
--- a/files/ja/web/api/element/clientheight/index.html
+++ /dev/null
@@ -1,67 +0,0 @@
----
-title: Element.clientHeight
-slug: Web/API/Element/clientHeight
-tags:
- - API
- - CSSOM View
- - NeedsMarkupWork
- - Property
- - Reference
-translation_of: Web/API/Element/clientHeight
----
-<div>{{APIRef("DOM")}}</div>
-
-<p><strong><code>Element.clientHeight</code></strong> は読み取り専用のプロパティで、 CSS のない要素やインラインレイアウトボックスではゼロになります。それ以外では、要素の内側の寸法をピクセル単位で表します。パディングは含みますが、境界、マージン、 (もしあれば) 水平スクロールバーは含みません。</p>
-
-<p><code>clientHeight</code> は CSS <code>height</code> + CSS <code>padding</code> - 水平スクロールバーの高さ(height) (もしあれば) として計算できます。</p>
-
-<p><code>clientHeight</code> がルート要素 (<code>&lt;html&gt;</code> 要素) (または文書が後方互換モードである場合は <code>&lt;body&gt;</code>) に使用された場合、 (スクロールバーを除いた) ビューポートの高さが返されます。<a href="https://www.w3.org/TR/2016/WD-cssom-view-1-20160317/#dom-element-clientheight">これは <code>clientHeight</code> の特例です</a>。</p>
-
-<div class="note">
-<p><strong>注:</strong> このプロパティは値を整数値に丸めます。小数値が必要であれば、 {{ domxref("element.getBoundingClientRect()") }} を使用してください。</p>
-</div>
-
-<h2 id="Syntax" name="Syntax">構文</h2>
-
-<pre class="syntaxbox notranslate">var <var>intElemClientHeight</var> = <var>element</var>.clientHeight;</pre>
-
-<p><code><var>intElemClientHeight</var></code> は <code><var>element</var></code> の <code>clientHeight</code> をピクセル単位で表す整数値です。 <code>clientHeight</code> プロパティは読み取り専用です。</p>
-
-<h2 id="Example" name="Example">例</h2>
-
-<p><img alt="Image:Dimensions-client.png" class="internal" src="/@api/deki/files/185/=Dimensions-client.png"></p>
-
-<h2 id="Specification" name="Specification">仕様書</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">状態</th>
- <th scope="col">備考</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('CSSOM View', '#dom-element-clientheight', 'clientHeight')}}</td>
- <td>{{Spec2("CSSOM View")}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Notes" name="Notes">注</h3>
-
-<p><code>clientHeight</code> は Internet Explorer オブジェクトモデルで導入されたプロパティです。</p>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat("api.Element.clientHeight")}}</p>
-
-<h2 id="See_also" name="See_also">関連情報</h2>
-
-<ul>
- <li>{{domxref("HTMLElement.offsetHeight")}}</li>
- <li>{{domxref("Element.scrollHeight")}}</li>
- <li><a href="/ja/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements">要素の寸法の決定</a></li>
-</ul>
diff --git a/files/ja/web/api/element/clientheight/index.md b/files/ja/web/api/element/clientheight/index.md
new file mode 100644
index 0000000000..15d1cc596a
--- /dev/null
+++ b/files/ja/web/api/element/clientheight/index.md
@@ -0,0 +1,51 @@
+---
+title: Element.clientHeight
+slug: Web/API/Element/clientHeight
+tags:
+ - API
+ - CSSOM View
+ - NeedsMarkupWork
+ - プロパティ
+ - リファレンス
+browser-compat: api.Element.clientHeight
+translation_of: Web/API/Element/clientHeight
+---
+{{APIRef("DOM")}}
+
+**`Element.clientHeight`** は読み取り専用のプロパティで、 CSS のない要素やインラインレイアウトボックスではゼロになります。それ以外では、要素の内側の寸法をピクセル単位で表します。パディングは含みますが、境界、マージン、(もしあれば)水平スクロールバーは含みません。
+
+`clientHeight` は CSS `height` + CSS `padding` - 水平スクロールバーの高さ (もしあれば) として計算できます。
+
+`clientHeight` がルート要素(`<html>` 要素)(または文書が後方互換モードである場合は `<body>`)に使用された場合、(スクロールバーを除いた)ビューポートの高さが返されます。[これは `clientHeight` の特例です](https://www.w3.org/TR/2016/WD-cssom-view-1-20160317/#dom-element-clientheight)。
+
+> **Note:** このプロパティは値を整数値に丸めます。小数値が必要であれば、 {{ domxref("element.getBoundingClientRect()") }} を使用してください。
+
+## 構文
+
+```js
+var intElemClientHeight = element.clientHeight;
+```
+
+`intElemClientHeight` は `element` の `clientHeight` をピクセル単位で表す整数値です。 `clientHeight` プロパティは読み取り専用です。
+
+## 例
+
+![](dimensions-client.png)
+
+## 仕様書
+
+{{Specifications}}
+
+### メモ
+
+`clientHeight` は Internet Explorer オブジェクトモデルで導入されたプロパティです。
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("HTMLElement.offsetHeight")}}
+- {{domxref("Element.scrollHeight")}}
+- [要素の寸法の決定](/ja/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements)
diff --git a/files/ja/web/api/element/clientleft/index.html b/files/ja/web/api/element/clientleft/index.html
deleted file mode 100644
index 7a17600640..0000000000
--- a/files/ja/web/api/element/clientleft/index.html
+++ /dev/null
@@ -1,86 +0,0 @@
----
-title: Element.clientLeft
-slug: Web/API/Element/clientLeft
-tags:
-- API
-- CSSOM View
-- NeedsAgnostify
-- NeedsMarkupWork
-- Property
-- Reference
-browser-compat: api.Element.clientLeft
-translation_of: Web/API/Element/clientLeft
----
-<div>{{ APIRef("DOM") }}</div>
-
-<p>要素の左境界の幅をピクセル数で表します。これは、要素の書字方向が右書きで、オーバーフローがある場合、左の垂直スクロールバーがレンダリングされると垂直スクロールバーの幅を含みます。 <code>clientLeft</code> は、左マージンまたは左パディングを含みません。 <code>clientLeft</code> は読み取り専用です。</p>
-
-<p><a class="external" href="http://kb.mozillazine.org/Layout.scrollbar.side"><code>layout.scrollbar.side</code> 設定項目</a>が 1 または 3 に設定されており、書字方向が RTL に設定されている場合、<strong>垂直スクロールバーは左側に配置され</strong>、これが clientLeft の計算方法に影響します。</p>
-
-<div class="note">
- <p><strong>注:</strong> このプロパティは値を整数に丸めます。小数の値が必要な場合は、 {{ domxref("element.getBoundingClientRect()") }} を使用してください。
- </p>
-</div>
-
-<p style="height: 5px !important; margin: 0px;"></p>
-
-<div class="note">
- <p><strong>注:</strong> 要素に
- <code>display: inline</code> が設定されている場合、境界の幅に関わらず <code>clientLeft</code> は <code>0</code> を返します。</p>
-</div>
-
-<h2 id="Syntax">構文</h2>
-
-<pre class="brush: js">var <var>left</var> = <var>element</var>.clientLeft;
-</pre>
-
-<h2 id="Example">例</h2>
-
-<div id="offsetContainer"
- style="margin: 40px 50px 50px; background-color: rgb(255, 255, 204); border: 4px dashed black; color: black; position: relative; display: inline-block;">
- <div id="idDiv"
- style="margin: 24px 29px; border: 24px black solid; padding: 0px 28px; width: 199px; height: 102px; overflow: auto; background-color: white; font-size: 13px!important; font-family: Arial, sans-serif;">
- <p id="PaddingTopLabel"
- style="text-align: center; font-style: italic; font-weight: bold; font-size: 13px!important; font-family: Arial, sans-serif; margin: 0px;">
- padding-top</p>
-
- <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
- incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
- nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
- </p>
-
- <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
- fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
- culpa qui officia deserunt mollit anim id est laborum.</p>
-
- <p id="PaddingBottomLabel"
- style="text-align: center; font-style: italic; font-weight: bold; font-size: 13px!important; font-family: Arial, sans-serif; margin: 0px;">
- padding-bottom</p>
- </div>
- <strong
- style="color: blue; font-family: arial,sans-serif; font-size: 13px!important; font-weight: bold; left: -32px; position: absolute; top: 85px;">Left</strong>
- <strong
- style="color: blue; font-family: arial,sans-serif; font-size: 13px!important; font-weight: bold; left: 170px; position: absolute; top: -24px;">Top</strong>
- <strong
- style="color: blue; font-family: arial,sans-serif; font-size: 13px!important; font-weight: bold; left: 370px; position: absolute; top: 85px;">Right</strong>
- <strong
- style="color: blue; font-family: arial,sans-serif; font-size: 13px!important; font-weight: bold; left: 164px; position: absolute; top: 203px;">Bottom</strong>
- <em>margin-top</em> <em>margin-bottom</em> <em>border-top</em> <em>border-bottom</em>
-</div>
-
-<h2 id="Specifications">仕様書</h2>
-
-{{Specifications}}
-
-<h2 id="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat}}</p>
-
-<h2 id="Notes">注</h2>
-
-<p><code>clientLeft</code> は MS IE DHTML オブジェクトモデルで最初に導入されました。</p>
-
-<p>要素に設定された書字方向が右書きである場合の垂直スクロールバーの位置は、 <a class="external" href="http://kb.mozillazine.org/Layout.scrollbar.side"><code>layout.scrollbar.side</code> の設定に依存します</a></p>
-
-<p><a href="/ja/Gecko">Gecko</a> ベースのアプリケーションは、 <code>clientLeft</code> を Gecko 1.9 (<a href="/ja/Firefox_3">Firefox 3</a>、 {{
- Bug(111207) }} による実装) から実装しました。このプロパティは Firefox 2 以前では対応していません。</p>
diff --git a/files/ja/web/api/element/clientleft/index.md b/files/ja/web/api/element/clientleft/index.md
new file mode 100644
index 0000000000..0f7ccf8fb9
--- /dev/null
+++ b/files/ja/web/api/element/clientleft/index.md
@@ -0,0 +1,73 @@
+---
+title: Element.clientLeft
+slug: Web/API/Element/clientLeft
+tags:
+ - API
+ - CSSOM View
+ - NeedsAgnostify
+ - NeedsMarkupWork
+ - プロパティ
+ - リファレンス
+browser-compat: api.Element.clientLeft
+translation_of: Web/API/Element/clientLeft
+---
+{{ APIRef("DOM") }}
+
+要素の左境界の幅をピクセル数で表します。これは、要素の書字方向が右書きで、オーバーフローがある場合、左の垂直スクロールバーがレンダリングされると垂直スクロールバーの幅を含みます。 `clientLeft` は、左マージンまたは左パディングを含みません。 `clientLeft` は読み取り専用です。
+
+> **Note:** このプロパティは値を整数に丸めます。小数の値が必要な場合は、 {{ domxref("element.getBoundingClientRect()") }} を使用してください。
+
+> **Note:** 要素に `display: inline` が設定されている場合、境界の幅に関わらず `clientLeft` は `0` を返します。
+
+## 構文
+
+```js
+var left = element.clientLeft;
+```
+
+## 例
+
+次の例では、クライアント領域の背景が白で、 `border-left` が 24px の黒になっています。 `clientLeft` の値は、マージン(黄色)領域の末端から、パディングとコンテンツ領域(白色)が始まるまでの距離、つまり 24px となります。
+
+### HTML
+
+```html
+<div id="container">
+ <div id="contained">
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+ incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
+ nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
+ </div>
+</div>
+```
+
+### CSS
+
+```css
+
+#container {
+ margin: 3rem;
+ background-color: rgb(255, 255, 204);
+ border: 4px dashed black;
+}
+
+#contained {
+ margin: 1rem;
+ border-left: 24px black solid;
+ padding: 0px 28px;
+ overflow: auto;
+ background-color: white;
+}
+```
+
+### 結果
+
+{{EmbedLiveSample("Example", 400, 350)}}
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
diff --git a/files/ja/web/api/element/clienttop/index.html b/files/ja/web/api/element/clienttop/index.html
deleted file mode 100644
index 95ae5ad2b3..0000000000
--- a/files/ja/web/api/element/clienttop/index.html
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: element.clientTop
-slug: Web/API/Element/clientTop
-tags:
- - DOM
- - Gecko
- - Gecko DOM Reference
-translation_of: Web/API/Element/clientTop
----
-<div>
- {{ApiRef}}</div>
-<h2 id="Summary" name="Summary">概要</h2>
-<p>要素の上ボーダーの幅のピクセル数です。上マージン、及び、上パディングは含みません。<code>clientTop</code> は読込専用です。</p>
-<p><a href="/ja/docs/Gecko">Gecko</a> ベースアプリケーションは、 Gecko 1.9 (<a href="/ja/docs/Mozilla/Firefox/Releases/3">Firefox 3</a>、{{Bug("111207")}} で実装) から <code>clientTop</code> をサポートします。このプロパティは、Firefox 2 以前ではサポートされません。</p>
-<h2 id="Syntax" name="Syntax">構文</h2>
-<pre class="syntaxbox"><var>top</var> = <var>element</var>.clientTop;
-</pre>
-<h2 id="Example" name="Example">例</h2>
-<div id="offsetContainer" style="margin: 26px 0px; background-color: rgb(255, 255, 204); border: 4px dashed black; color: black; position: absolute; left: 260px;">
- <div id="idDiv" style="margin: 24px 29px; border: 24px black solid; padding: 0px 28px; width: 199px; height: 102px; overflow: auto; background-color: white; font-size: 13px!important; font-family: Arial, sans-serif;">
- <p id="PaddingTopLabel" style="text-align: center; font-style: italic; font-weight: bold; font-size: 13px!important; font-family: Arial, sans-serif; margin: 0px;">padding-top</p>
- <p>Gentle, individualistic and very loyal, Birman cats fall between Siamese and Persian in character. If you admire cats that are non aggressive, that enjoy being with humans and tend to be on the quiet side, you may well find that Birman cats are just the felines for you.</p>
- <p><span style="float: right;"><img height="69" src="https://mdn.mozillademos.org/files/143/BirmanCat.jpg" width="129"></span>All Birmans have colorpointed features, dark coloration of the face, ears, legs and tail.</p>
- <p>Cat image and text coming from <a href="http://www.best-cat-art.com/">www.best-cat-art.com</a></p>
- <p id="PaddingBottomLabel" style="text-align: center; font-style: italic; font-weight: bold; font-size: 13px!important; font-family: Arial, sans-serif; margin: 0px;">padding-bottom</p>
- </div>
- <span style="position: absolute; left: -32px; top: 85px; color: blue; font-weight: bold; font-size: 13px!important; font-family: Arial, sans-serif;">Left</span><span style="position: absolute; left: 170px; top: -24px; color: blue; font-weight: bold; font-size: 13px!important; font-family: Arial, sans-serif;">Top</span><span style="position: absolute; left: 370px; top: 85px; color: blue; font-weight: bold; font-size: 13px!important; font-family: Arial, sans-serif;">Right</span><span style="position: absolute; left: 164px; top: 203px; color: blue; font-weight: bold; font-size: 13px!important; font-family: Arial, sans-serif;">Bottom</span><span style="position: absolute; left: 143px; top: 5px; font-style: italic; font-weight: bold; font-size: 13px!important; font-family: Arial, sans-serif;">margin-top</span><span style="position: absolute; left: 138px; top: 175px; font-style: italic; font-weight: bold; font-size: 13px!important; font-family: Arial, sans-serif;">margin-bottom</span><span style="position: absolute; left: 143px; top: 27px; color: white; font-style: italic; font-weight: bold; font-size: 13px!important; font-family: Arial, sans-serif;">border-top</span><span style="position: absolute; left: 138px; top: 153px; color: white; font-style: italic; font-weight: bold; font-size: 13px!important; font-family: Arial, sans-serif;">border-bottom</span><span class="comment">{{mediawiki.external('if IE')}}&gt;&lt;span id="MrgLeft" style="position: absolute; left: 8px; top: 65px; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;"&gt;margin-left&lt;/span&gt;&lt;span id="BrdLeft" style="position: absolute; left: 33px; top: 65px; color: white; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;"&gt;border-left&lt;/span&gt;&lt;span id="PdgLeft" style="position: absolute; left: 55px; top: 65px; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;"&gt;padding-left&lt;/span&gt;&lt;span id="PdgRight" style="position: absolute; left: 275px; top: 60px; color: black; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl; white-space: nowrap;"&gt;padding-right&lt;/span&gt;&lt;span id="BrdRight" style="position: absolute; left: 310px; top: 65px; color: white; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;"&gt;border-right&lt;/span&gt;&lt;span id="MrgRight" style="position: absolute; left: 340px; top: 65px; font: bold 13px Arial, sans-serif !important; writing-mode: tb-rl;"&gt;margin-right&lt;/span&gt;&lt;!{{mediawiki.external('endif')}}</span></div>
-<p style="margin-top: 270px;"><img height="302" src="https://mdn.mozillademos.org/files/263/clientTop.png" width="548"></p>
-<h2 id="Specification" name="Specification">仕様</h2>
-<p>W3C の仕様の一部ではありません。</p>
-<h2 id="Notes" name="Notes">注記</h2>
-<p><code>clientTop</code> は MS IE DHTML オブジェクトモデルで最初に導入されました。</p>
-<h2 id="References" name="References">リファレンス</h2>
-<ul>
- <li><a href="http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/clienttop.asp?frame=true">MSDN's clientTop definition</a>(<a href="http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpisdk/dhtml/references/properties/clientTop.asp">日本語版</a>)</li>
- <li><a href="http://msdn.microsoft.com/workshop/author/om/measuring.asp">MSDN's Measuring Element Dimension and Location</a>(<a href="http://msdn.microsoft.com/library/ja/jpisdk/dhtml/measure/measuring.asp?FRAME=true#chp_measuring">日本語版</a>)</li>
-</ul>
diff --git a/files/ja/web/api/element/clienttop/index.md b/files/ja/web/api/element/clienttop/index.md
new file mode 100644
index 0000000000..1438ca59a4
--- /dev/null
+++ b/files/ja/web/api/element/clienttop/index.md
@@ -0,0 +1,77 @@
+---
+title: Element.clientTop
+slug: Web/API/Element/clientTop
+tags:
+ - API
+ - CSSOM View
+ - NeedsAgnostify
+ - NeedsMarkupWork
+ - プロパティ
+ - リファレンス
+browser-compat: api.Element.clientTop
+translation_of: Web/API/Element/clientTop
+---
+{{ APIRef("DOM") }}
+
+要素の上境界の幅をピクセル数で表します。これは要素の読み取り専用で整数型のプロパティです。
+
+たまたま、 2 つの位置(`offsetTop` とクライアント領域の上端)の間にあるのは、要素の境界だけです。これは、 `offsetTop` が(マージンではなく)境界の上端の位置を示し、クライアント領域は境界の直下から始まるからです(クライアント領域はパディングを含みます)。したがって、 **clientTop** 値は常に "border-top-width" に対する `.getComputedStyle()` 値の整数部分と一致します。(実際には Math.round(parseFloat()) かもしれません。)例えば、計算された "border-top-width" が 0 の場合、 **`clientTop`** も 0 になります。
+
+> **Note:** このプロパティは値を整数に丸めます。小数の値が必要な場合は、 {{ domxref("element.getBoundingClientRect()") }} を使用してください。
+
+## 構文
+
+```js
+var top = element.clientTop;
+```
+
+## 例
+
+次の例では、クライアント領域の背景が白で、 `border-top` が 24px の黒になっています。 `clientTop` の値は、マージン(黄色)領域の末端から、パディングとコンテンツ領域(白色)が始まるまでの距離、つまり 24px となります。
+
+### HTML
+
+```html
+<div id="container">
+ <div id="contained">
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+ incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
+ nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
+ </div>
+</div>
+```
+
+### CSS
+
+```css
+
+#container {
+ margin: 3rem;
+ background-color: rgb(255, 255, 204);
+ border: 4px dashed black;
+}
+
+#contained {
+ margin: 1rem;
+ border-top: 24px black solid;
+ padding: 0px 28px;
+ overflow: auto;
+ background-color: white;
+}
+```
+
+### 結果
+
+{{EmbedLiveSample("Example", 400, 350)}}
+
+## メモ
+
+`clientTop` は MS IE DHTML オブジェクトモデルで最初に導入されました。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
diff --git a/files/ja/web/api/element/clientwidth/index.html b/files/ja/web/api/element/clientwidth/index.html
deleted file mode 100644
index 47753e0077..0000000000
--- a/files/ja/web/api/element/clientwidth/index.html
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: Element.clientWidth
-slug: Web/API/Element/clientWidth
-tags:
- - API
- - CSSOM View
- - Property
- - Reference
- - プロパティ
-translation_of: Web/API/Element/clientWidth
----
-<div>{{APIRef("DOM")}}</div>
-
-<p><code><strong>Element.clientWidth</strong></code> プロパティは、インライン要素や CSS のない要素ではゼロになります。それ以外では、要素の内側の寸法をピクセル単位で表します。パディングは含みますが、境界、マージン、 (もしあれば) 垂直スクロールバーは含みません。</p>
-
-<p><code>clientWidth</code> がルート要素 (<code>&lt;html&gt;</code> 要素) (または文書が後方互換モードである場合は <code>&lt;body&gt;</code>) に使用された場合、 (スクロールバーの幅を除く) ビューポートの幅が返されます。<a href="https://www.w3.org/TR/2016/WD-cssom-view-1-20160317/#dom-element-clientwidth">これは <code>clientWidth</code></a> の特例です。</p>
-
-<div class="note">
-<p><strong>メモ:</strong> このプロパティは値を整数値に丸めます。小数値が必要であれば、 {{ domxref("element.getBoundingClientRect()") }} を使用してください。</p>
-</div>
-
-<h2 id="Syntax" name="Syntax">構文</h2>
-
-<pre class="syntaxbox">var <var>intElemClientWidth</var> = <var>element</var>.clientWidth;</pre>
-
-<p><code><var>intElemClientWidth</var></code> は <code><var>element</var></code> の <code>clientWidth</code> をピクセル数で表す整数値です。 <code>clientWidth</code> プロパティは読み取り専用です。</p>
-
-<h2 id="Example" name="Example">例</h2>
-
-<p><img alt="Image:Dimensions-client.png" class="internal" src="/@api/deki/files/185/=Dimensions-client.png"></p>
-
-<h2 id="Specification" name="Specification">仕様書</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">状態</th>
- <th scope="col">備考</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('CSSOM View', '#dom-element-clientwidth', 'clientWidth')}}</td>
- <td>{{Spec2("CSSOM View")}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Notes" name="Notes">メモ</h3>
-
-<p><code>clientWidth</code> は MS IE DHTML オブジェクトモデルにおいて初めて導入されました。</p>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat("api.Element.clientWidth")}}</p>
-
-<h2 id="See_also" name="See_also">関連情報</h2>
-
-<ul>
- <li>{{domxref("HTMLElement.offsetWidth")}}</li>
- <li>{{domxref("Element.scrollWidth")}}</li>
- <li><a href="/ja/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements">要素の寸法の決定</a></li>
-</ul>
diff --git a/files/ja/web/api/element/clientwidth/index.md b/files/ja/web/api/element/clientwidth/index.md
new file mode 100644
index 0000000000..af5d5481ca
--- /dev/null
+++ b/files/ja/web/api/element/clientwidth/index.md
@@ -0,0 +1,49 @@
+---
+title: Element.clientWidth
+slug: Web/API/Element/clientWidth
+tags:
+ - API
+ - CSSOM View
+ - NeedsMarkupWork
+ - リファレンス
+ - プロパティ
+browser-compat: api.Element.clientWidth
+translation_of: Web/API/Element/clientWidth
+---
+{{APIRef("DOM")}}
+
+**`Element.clientWidth`** プロパティは、インライン要素や CSS のない要素ではゼロになります。それ以外では、要素の内側の寸法をピクセル単位で表します。パディングは含みますが、境界、マージン、(もしあれば)垂直スクロールバーは含みません。
+
+`clientWidth` がルート要素(`<html>` 要素)(または文書が後方互換モードである場合は `<body>`)に使用された場合、(スクロールバーを除いた)ビューポートの高さが返されます。[これは `clientWidth` の特例です](https://www.w3.org/TR/2016/WD-cssom-view-1-20160317/#dom-element-clientwidth)。
+
+> **Note:** このプロパティは値を整数に丸めます。小数の値が必要な場合は、 {{ domxref("element.getBoundingClientRect()") }} を使用してください。
+
+## 構文
+
+```js
+var intElemClientWidth = element.clientWidth;
+```
+
+`intElemClientWidth` は `element` の `clientWidth` をピクセル数で表す整数値です。 `clientWidth` プロパティは読み取り専用です。
+
+## 例
+
+![](dimensions-client.png)
+
+## 仕様書
+
+{{Specifications}}
+
+## メモ
+
+`clientTop` は MS IE DHTML オブジェクトモデルで最初に導入されました。
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("HTMLElement.offsetWidth")}}
+- {{domxref("Element.scrollWidth")}}
+- [要素の寸法の決定](/ja/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements)
diff --git a/files/ja/web/api/element/closest/index.html b/files/ja/web/api/element/closest/index.html
deleted file mode 100644
index dd876b80aa..0000000000
--- a/files/ja/web/api/element/closest/index.html
+++ /dev/null
@@ -1,149 +0,0 @@
----
-title: Element.closest()
-slug: Web/API/Element/closest
-tags:
- - API
- - DOM
- - Element
- - Method
- - Reference
- - メソッド
-translation_of: Web/API/Element/closest
----
-<div>{{APIRef('DOM')}}</div>
-
-<div><code><strong>closest()</strong></code> メソッドは、要素とその親 (文書ルートに向かって) を、指定されたセレクター文字列に一致するノードが見つかるまで探索します。自分自身または一致する祖先を返します。そのような要素が存在しない場合は、 <code>null</code> を返します。
-
-<h2 id="Syntax" name="Syntax">構文</h2>
-
-<pre class="syntaxbox">var <var>closestElement</var> = <var>targetElement</var>.closest(<var>selectors</var>);
-</pre>
-
-<h3 id="Parameters" name="Parameters">引数</h3>
-
-<ul>
- <li><code><var>selectors</var></code> は {{domxref("DOMString")}} で、セレクターのリストを指定します。<br>
- 例: <code>p:hover, .toto + q</code></li>
-</ul>
-
-<h3 id="Return_value" name="Return_value">返値</h3>
-
-<ul>
- <li><code><var>closestElement</var></code> は選択された要素の直近の祖先に当たる {{domxref("Element")}} です。 <code>null</code> になることがあります。</li>
-</ul>
-
-<h3 id="Exceptions" name="Exceptions">例外</h3>
-
-<ul>
- <li><code><var>selectors</var></code> が妥当なセレクターリストの文字列ではない場合、 {{exception("SyntaxError")}} が投げられます。</li>
-</ul>
-
-<h2 id="Example" name="Example">例</h2>
-
-<h3 id="HTML">HTML</h3>
-
-<pre class="brush: html">&lt;article&gt;
- &lt;div id="div-01"&gt;Here is div-01
- &lt;div id="div-02"&gt;Here is div-02
- &lt;div id="div-03"&gt;Here is div-03&lt;/div&gt;
- &lt;/div&gt;
- &lt;/div&gt;
-&lt;/article&gt;</pre>
-
-<h3 id="JavaScript">JavaScript</h3>
-
-<pre class="brush: js">var el = document.getElementById('div-03');
-
-var r1 = el.closest("#div-02");
-// id=div-02 である要素を返す
-
-var r2 = el.closest("div div");
-// div の中にある div である直近の祖先、ここでは div-03 自身を返す
-
-var r3 = el.closest("article &gt; div");
-// 親に article を持つ div である直近の祖先、ここでは div-01 を返す
-
-var r4 = el.closest(":not(div)");
-// div ではない直近の祖先、ここではもっとも外側の article を返す</pre>
-
-<h2 id="Polyfill" name="Polyfill">ポリフィル</h2>
-
-<p><code>Element.closest()</code> に対応していないブラウザーで、 <code>element.matches()</code> (または接頭辞付きの同等のもの、すなわち IE9+) に対応しているものには、ポリフィルがあります。</p>
-
-<pre class="brush: js">if (!Element.prototype.matches) {
- Element.prototype.matches = Element.prototype.msMatchesSelector ||
- Element.prototype.webkitMatchesSelector;
-}
-
-if (!Element.prototype.closest) {
- Element.prototype.closest = function(s) {
- var el = this;
-
- do {
- if (Element.prototype.matches.call(el, s)) return el;
- el = el.parentElement || el.parentNode;
- } while (el !== null &amp;&amp; el.nodeType === 1);
- return null;
- };
-}</pre>
-
-<p>しかし、本当に IE 8 の対応が必要な場合は、以下のポリフィルがとても遅い処理ながら、結果を出すことができます。但し、 IE 8 は CSS 2.1 のセレクターにしか対応しておらず、本番のウェブサイトが極端に遅くなる原因となることがあります。</p>
-
-<pre class="brush: js">if (window.Element &amp;&amp; !Element.prototype.closest) {
- Element.prototype.closest =
- function(s) {
- var matches = (this.document || this.ownerDocument).querySelectorAll(s),
- i,
- el = this;
- do {
- i = matches.length;
- while (--i &gt;= 0 &amp;&amp; matches.item(i) !== el) {};
- } while ((i &lt; 0) &amp;&amp; (el = el.parentElement));
- return el;
- };
-}
-</pre>
-
-<h2 id="Specifications" name="Specifications">仕様書</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">状態</th>
- <th scope="col">備考</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('DOM WHATWG', '#dom-element-closest', 'Element.closest()')}}</td>
- <td>{{Spec2('DOM WHATWG')}}</td>
- <td>初回定義</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
-
-<div>
-<p>{{Compat("api.Element.closest")}}</p>
-
-<h3 id="Compatibility_notes" name="Compatibility_notes">互換性のメモ</h3>
-
-<ul>
- <li>Edge 15-18 では、要素が最初に(直接的または間接的に)コンテキストオブジェクト、例えば通常の DOM の場合は {{domxref("Document")}} オブジェクトに接続されていない場合、 <code>document.createElement(tagName).closest(tagName)</code> が <code>null</code> を返します。</li>
-</ul>
-</div>
-
-<h2 id="See_also" name="See_also">関連情報</h2>
-
-<ul>
- <li>{{domxref("Element")}} インターフェイス</li>
- <li>
- <div class="syntaxbox"><a href="/ja/docs/Web/Guide/CSS/Getting_started/Selectors">セレクターの構文</a></div>
- </li>
- <li>
- <div class="syntaxbox">Other methods that take selectors: {{domxref("element.querySelector()")}} and {{domxref("element.matches()")}}.</div>
- </li>
-</ul>
-</div>
diff --git a/files/ja/web/api/element/closest/index.md b/files/ja/web/api/element/closest/index.md
new file mode 100644
index 0000000000..5cb1ccccda
--- /dev/null
+++ b/files/ja/web/api/element/closest/index.md
@@ -0,0 +1,127 @@
+---
+title: Element.closest()
+slug: Web/API/Element/closest
+tags:
+ - API
+ - CSS セレクター
+ - DOM
+ - Element
+ - メソッド
+ - リファレンス
+ - セレクター
+browser-compat: api.Element.closest
+translation_of: Web/API/Element/closest
+---
+{{APIRef('DOM')}}
+
+**`closest()`** は {{domxref("Element")}} インターフェイスのメソッドで、この要素 ({{domxref("Element")}}) とその親階層に(文書ルートに向かって)、指定されたセレクター文字列に一致するノードが見つかるまで探索します。自分自身または一致する祖先を返します。そのような要素が存在しない場合は、 `null` を返します。
+
+## 構文
+
+```js
+var closestElement = targetElement.closest(selectors);
+```
+
+### 引数
+
+- `selectors` は {{domxref("DOMString")}} で、セレクターのリストを指定します。
+ 例: `p:hover, .toto + q`
+
+### 返値
+
+- `closestElement` は選択された要素の直近の祖先に当たる {{domxref("Element")}} です。 `null` になることがあります。
+
+### 例外
+
+- {{exception("SyntaxError")}} は `selectors` が妥当なセレクターリストの文字列ではない場合に発生します。
+
+## 例
+
+### HTML
+
+```html
+<article>
+ <div id="div-01">Here is div-01
+ <div id="div-02">Here is div-02
+ <div id="div-03">Here is div-03</div>
+ </div>
+ </div>
+</article>
+```
+
+### JavaScript
+
+```js
+var el = document.getElementById('div-03');
+
+var r1 = el.closest("#div-02");
+// id=div-02 である要素を返す
+
+var r2 = el.closest("div div");
+// div の中にある div である直近の祖先、ここでは div-03 自身を返す
+
+var r3 = el.closest("article &gt; div");
+// 親に article を持つ div である直近の祖先、ここでは div-01 を返す
+
+var r4 = el.closest(":not(div)");
+// div ではない直近の祖先、ここではもっとも外側の article を返す
+```
+
+## ポリフィル
+
+`Element.closest()` に対応していないブラウザーで、 `element.matches()` (または接頭辞付きの同等のもの、すなわち IE9+) に対応しているものには、ポリフィルがあります。
+
+```js
+if (!Element.prototype.matches) {
+ Element.prototype.matches =
+ Element.prototype.msMatchesSelector ||
+ Element.prototype.webkitMatchesSelector;
+}
+
+if (!Element.prototype.closest) {
+ Element.prototype.closest = function(s) {
+ var el = this;
+
+ do {
+ if (Element.prototype.matches.call(el, s)) return el;
+ el = el.parentElement || el.parentNode;
+ } while (el !== null && el.nodeType === 1);
+ return null;
+ };
+}
+```
+
+しかし、本当に IE 8 の対応が必要な場合は、以下のポリフィルがとても遅い処理ながら、結果を出すことができます。但し、 IE 8 は CSS 2.1 のセレクターにしか対応しておらず、本番のウェブサイトが極端に遅くなる原因となることがあります。
+
+```js
+if (window.Element && !Element.prototype.closest) {
+ Element.prototype.closest = function(s) {
+ var matches = (this.document || this.ownerDocument).querySelectorAll(s),
+ i,
+ el = this;
+ do {
+ i = matches.length;
+ while (--i >= 0 && matches.item(i) !== el) {};
+ } while ((i < 0) && (el = el.parentElement));
+ return el;
+ };
+}
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+### 互換性のメモ
+
+- Edge 15-18 では、要素が最初に(直接的または間接的に)コンテキストオブジェクト、例えば通常の DOM の場合は {{domxref("Document")}} オブジェクトに接続されていない場合、 `document.createElement(tagName).closest(tagName)` が `null` を返します。
+
+## 関連情報
+
+- {{domxref("Element")}} インターフェイス
+- [セレクターの構文](/ja/docs/Learn/CSS/Building_blocks/Selectors)
+- セレクターを取る他のメソッド: {{domxref("element.querySelector()")}} および {{domxref("element.matches()")}}
diff --git a/files/ja/web/api/element/computedstylemap/index.md b/files/ja/web/api/element/computedstylemap/index.md
new file mode 100644
index 0000000000..17acec435f
--- /dev/null
+++ b/files/ja/web/api/element/computedstylemap/index.md
@@ -0,0 +1,94 @@
+---
+title: Element.computedStyleMap()
+slug: Web/API/Element/computedStyleMap
+tags:
+ - API
+ - CSS Typed Object Model API
+ - Element
+ - 実験的
+ - Houdini
+ - メソッド
+ - リファレンス
+ - StylePropertyMapReadOnly
+ - computedStyleMap()
+browser-compat: api.Element.computedStyleMap
+translation_of: Web/API/Element/computedStyleMap
+---
+{{APIRef("CSS Typed Object Model API")}}{{SeeCompatTable}}
+
+**`computedStyleMap()`** は {{domxref("Element")}} インターフェイスのメソッドであり、 {{domxref("StylePropertyMapReadOnly")}} インターフェイスで {{domxref("CSSStyleDeclaration")}} の代替となる CSS 宣言ブロックの読み取り専用の表現を提供します。
+
+## 構文
+
+```js
+var stylePropertyMapReadOnly = element.computedStyleMap()
+```
+
+### 引数
+
+なし。
+
+### 返値
+
+{{domxref("StylePropertyMapReadOnly")}} インターフェイスです。
+
+## 例
+
+まず、簡単な HTML から始めましょう。リンクのある段落と、すべての CSS プロパティと値の組を追加する定義リストです。
+
+```html
+<p>
+ <a href="https://example.com">Link</a>
+</p>
+<dl id="regurgitation"></dl>
+```
+
+いくらか CSS を追加します。
+
+```css
+a {
+ --color: red;
+ color: var(--color);
+}
+```
+
+JavaScript を追加してリンクを取得し、 `computedStyleMap()` を使用してすべての CSS プロパティ値の定義リストを返します。
+
+```js
+// 要素を取得
+const myElement = document.querySelector('a');
+
+// 入力する <dl> を取得
+const stylesList = document.querySelector('#regurgitation');
+
+// すべての計算済みスタイルを computedStyleMap() で受け取る
+const allComputedStyles = myElement.computedStyleMap();
+
+// すべてのプロパティと値のマップを反復処理し、それぞれに <dt> と <dd> を追加します。
+for (const [prop, val] of allComputedStyles) {
+ // プロパティ
+ const cssProperty = document.createElement('dt');
+ cssProperty.appendChild(document.createTextNode(prop));
+ stylesList.appendChild(cssProperty);
+
+ // 値
+ const cssValue = document.createElement('dd');
+ cssValue.appendChild(document.createTextNode(val));
+ stylesList.appendChild(cssValue);
+}
+```
+
+[`computedStyleMap()` に対応しているブラウザー](#ブラウザーの互換性)では、すべての CSS プロパティと値のリストが表示されます。
+他のブラウザーでは、リンクが表示されるだけです。
+
+{{EmbedLiveSample("Examples", 300, 300)}}
+
+リンクが持つ既定の CSS プロパティがいくつもあることに気づきましたか? '`a`' を '`p`' に更新すると、`margin-top` と `margin-bottom` の既定の計算値の違いに気が付くでしょう。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
diff --git a/files/ja/web/api/element/createshadowroot/index.md b/files/ja/web/api/element/createshadowroot/index.md
new file mode 100644
index 0000000000..a18ac75a8e
--- /dev/null
+++ b/files/ja/web/api/element/createshadowroot/index.md
@@ -0,0 +1,41 @@
+---
+title: Element.createShadowRoot()
+slug: Web/API/Element/createShadowRoot
+tags:
+ - API
+ - Deprecated
+ - Element
+ - メソッド
+ - 標準外
+ - リファレンス
+ - シャドウ DOM
+browser-compat: api.Element.createShadowRoot
+translation_of: Web/API/Element/createShadowRoot
+---
+{{APIRef('Shadow DOM')}}{{non-standard_header}}{{deprecated_header}}
+
+`Element.createShadowRoot` は[シャドウ DOM](/ja/docs/Web/Web_Components/Using_shadow_DOM) のインスタンスを作成するために使用し案す。シャドウ DOM が作成されると、常に既存の要素に割り当てられます。シャドウ DOM が作成された後、それが割り当てられている要素を{{glossary("shadow root", "シャドウルート")}}と呼びます。
+
+> **Note:** このメソッドは非推奨となり、 {{DOMxRef("Element.attachShadow()","attachShadow()")}} に置き換えられました。
+
+## 構文
+
+```js
+var shadowroot = element.createShadowRoot();
+```
+
+### 引数
+
+引数はありません。
+
+### 返値
+
+{{DOMxRef("ShadowRoot")}} を返します。
+
+## 仕様書
+
+この機能は仕様書で定義されなくなりました。
+
+## ブラウザーの互換性
+
+{{Compat}}
diff --git a/files/ja/web/api/element/error_event/index.html b/files/ja/web/api/element/error_event/index.html
index c5e0ddc136..b058a7a822 100644
--- a/files/ja/web/api/element/error_event/index.html
+++ b/files/ja/web/api/element/error_event/index.html
@@ -43,7 +43,7 @@ translation_of: Web/API/Element/error_event
</tbody>
</table>
-<p>イベントオブジェ久は、ユーザーインターフェイス要素から生成された場合は {{domxref("UIEvent")}} のインスタンスとなり、それ以外の場合は {{domxref("Event")}} となります。</p>
+<p>イベントオブジェクトは、ユーザーインターフェイス要素から生成された場合は {{domxref("UIEvent")}} のインスタンスとなり、それ以外の場合は {{domxref("Event")}} となります。</p>
<h2 id="Examples" name="Examples">例</h2>
diff --git a/files/ja/web/api/element/firstelementchild/index.md b/files/ja/web/api/element/firstelementchild/index.md
new file mode 100644
index 0000000000..a1a1182594
--- /dev/null
+++ b/files/ja/web/api/element/firstelementchild/index.md
@@ -0,0 +1,55 @@
+---
+title: Element.firstElementChild
+slug: Web/API/Element/firstElementChild
+tags:
+ - API
+ - DOM
+ - Element
+ - プロパティ
+browser-compat: api.Element.firstElementChild
+translation_of: Web/API/Element/firstElementChild
+---
+{{ APIRef("DOM") }}
+
+**`Element.firstElementChild`** は読み取り専用のプロパティで、要素の最初の子を {{domxref("Element")}} で返します。子要素がない場合は `null` を返します。
+
+`Element.firstElementChild` は要素ノードのみを含みます。
+テキストやコメントノードなど、要素以外のノードを含むすべての子ノードを取得するには、 {{domxref("Node.firstChild")}} を使用してください。
+
+## 構文
+
+```js
+// ゲッター
+element = el.firstElementChild;
+
+// セッターなし。読み取り専用プロパティ
+```
+
+## 例
+
+```html
+<ul id="list">
+ <li>First (1)</li>
+ <li>Second (2)</li>
+ <li>Third (3)</li>
+</ul>
+
+<script>
+const list = document.getElementById('list');
+console.log(list.firstElementChild.textContent);
+// logs "First (1)"
+</script>
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Element.nextElementSibling")}}
+- {{domxref("Element.lastElementChild")}}
diff --git a/files/ja/web/api/element/getanimations/index.md b/files/ja/web/api/element/getanimations/index.md
new file mode 100644
index 0000000000..2ab0b9efe4
--- /dev/null
+++ b/files/ja/web/api/element/getanimations/index.md
@@ -0,0 +1,73 @@
+---
+title: Element.getAnimations()
+slug: Web/API/Element/getAnimations
+tags:
+ - API
+ - Animatable
+ - CSS
+ - CSS アニメーション
+ - CSS トランジション
+ - Element
+ - 実験的
+ - メソッド
+ - リファレンス
+ - トランジション
+ - ウェブアニメーション
+ - getAnimations
+ - waapi
+ - web animations api
+browser-compat: api.Element.getAnimations
+translation_of: Web/API/Element/getAnimations
+---
+{{ SeeCompatTable() }}{{APIRef("Web Animations")}}
+
+`getAnimations()` は {{domxref("Element")}} インターフェイスのメソッドで(`Animatable` ミックスインで指定されており)、この要素に影響を与える、あるいは将来的に影響を与える予定のすべての {{domxref("Animation")}} オブジェクトの配列を返します。オプションとして、子孫要素の {{domxref("Animation")}} オブジェクトも返すことができます。
+
+> **Note:** この配列には [CSS アニメーション](/ja/docs/Web/CSS/CSS_Animations)、[CSS トランジション](/ja/docs/Web/CSS/CSS_Transitions)、[ウェブアニメーション](/ja/docs/Web/API/Web_Animations_API)が含まれます。
+
+## 構文
+
+```js
+const animations = Element.getAnimations(options);
+```
+
+### 引数
+
+- `options {{optional_inline}}`
+
+ - : 以下のプロパティを含むオプションオブジェクトです。
+
+ - `subtree`
+ - : 論理値で、`true` の場合、 _Element_ の子孫をターゲットとしたアニメーションも返すようになります。これは、 _Element_ やその子孫に付けられた CSS [擬似要素](/ja/docs/Web/CSS/Pseudo-elements)をターゲットとするアニメーションを含みます。既定値は `false` です。
+
+### 返値
+
+{{domxref("Animation")}} オブジェクトの配列 ({{jsxref("Array")}}) で、それぞれが
+このメソッドが呼び出された {{domxref("Element")}}、または `{ subtree: true }` が指定されている場合は、その子孫の要素の 1 つを現在ターゲットにしているアニメーションです。
+
+## 例
+
+以下のコードでは、 `elem` とその子孫のすべてのアニメーションが終了するのを待ってから、文書からその要素を削除します。
+
+```js
+Promise.all(
+ elem.getAnimations({ subtree: true })
+ .map(animation => animation.finished)
+).then(() => elem.remove());
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [ウェブアニメーション API](/ja/docs/Web/API/Web_Animations_API)
+- [CSS アニメーション](/ja/docs/Web/CSS/CSS_Animations)
+- [CSS トランジション](/ja/docs/Web/CSS/CSS_Transitions)
+- {{domxref("Document.getAnimations()")}} - 文書内のすべてのアニメーションを読み取る
+- {{domxref("Animation")}}
diff --git a/files/ja/web/api/element/getattribute/index.html b/files/ja/web/api/element/getattribute/index.html
deleted file mode 100644
index 4ee84122ba..0000000000
--- a/files/ja/web/api/element/getattribute/index.html
+++ /dev/null
@@ -1,81 +0,0 @@
----
-title: Element.getAttribute()
-slug: Web/API/Element/getAttribute
-tags:
- - API
- - DOM
- - Element
- - Method
- - Reference
- - メソッド
-translation_of: Web/API/Element/getAttribute
----
-<div>{{APIRef("DOM")}}</div>
-
-<p><span class="seoSummary"><strong><code>getAttribute()</code></strong> は {{domxref("Element")}} インターフェイスのメソッドで、要素の指定された属性の値を返します。</span>指定された属性が存在しない場合、値は <code>null</code> か <code>""</code> (空文字列) のどちらかになります。詳しくは<a href="#Non-existing_attributes">属性が存在しない場合</a>を参照してください。</p>
-
-<h2 id="Syntax" name="Syntax">構文</h2>
-
-<pre class="syntaxbox">let <var>attribute</var> = <var>element</var>.getAttribute(<var>attributeName</var>);
-</pre>
-
-<p>ここで、</p>
-
-<ul>
- <li><code><var>attribute</var></code> は <code><var>attributeName</var></code> の値を持つ文字列です。</li>
- <li><code><var>attributeName</var></code> は値を取得したい属性の名前です。</li>
-</ul>
-
-<h2 id="Examples" name="Examples">例</h2>
-
-<pre class="brush:js">const div1 = document.getElementById('div1');
-const align = div1.getAttribute('align');
-
-alert(align); // id="div1" の要素の align の値を表示します。</pre>
-
-<h2 id="Description" name="Description">解説</h2>
-
-<h3 id="Lower_casing" name="Lower_casing">小文字化</h3>
-
-<p>HTML 文書である DOM の HTML 要素に対して呼び出すと、 <code>getAttribute()</code> は処理前に引数を小文字化します。</p>
-
-<h3 id="Non-existing_attributes" name="Non-existing_attributes">属性が存在しない場合</h3>
-
-<p>基本的にはすべてのウェブブラウザー (限定的なリストですが Firefox, Internet Explorer, Opera の最新バージョン, Safari, Konqueror, iCab など) は、指定された要素に指定された属性が存在しない場合は <code>null</code> を返します。これは<a href="http://dom.spec.whatwg.org/#dom-element-getattribute">現在の DOM 仕様書の草稿</a>で指定されています。一方、古い DOM 3 Core 仕様書では、このような場合の正しい返値は実際には<em>空文字列</em>となっています。そしていくつかの DOM の実装はこの動作を実装しています。実際、 <code>getAttribute()</code> の XUL (Gecko) での実装では、 DOM 3 Core 仕様書に従い空文字列を返します。結果的に、指定された要素に指定された属性が存在しない可能性があるのであれば、 {{domxref("element.hasAttribute()")}} を使用して属性の存在をチェックしてから <code>getAttribute()</code> を呼び出すべきでしょう。</p>
-
-<h3 id="Retrieving_nonce_values" name="Retrieving_nonce_values">ノンス値の受け取り</h3>
-
-<p>セキュリティ上の理由で、スクリプト以外、例えば CSS セレクターから来た <a href="/ja/docs/Web/HTTP/CSP">CSP</a> のノンスと、 <code>.getAttribute("nonce")</code> の呼び出しは隠蔽されます。</p>
-
-<pre class="brush: js example-bad">let nonce = script.getAttribute('nonce');
-// 空文字列が返される
-</pre>
-
-<p>コンテンツ属性のノンスをるには、代わりに <code><a href="/ja/docs/Web/API/HTMLOrForeignElement/nonce">nonce</a></code> プロパティを使用してください。</p>
-
-<pre class="brush: js">let nonce =  script.nonce;</pre>
-
-<h2 id="Specifications" name="Specifications">仕様書</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">状態</th>
- <th scope="col">備考</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('DOM WHATWG', '#dom-element-attachshadow', 'attachShadow()')}}</td>
- <td>{{Spec2('DOM WHATWG')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
-
-<div>
-<p>{{Compat("api.Element.getAttribute")}}</p>
-</div>
diff --git a/files/ja/web/api/element/getattribute/index.md b/files/ja/web/api/element/getattribute/index.md
new file mode 100644
index 0000000000..af0ef01437
--- /dev/null
+++ b/files/ja/web/api/element/getattribute/index.md
@@ -0,0 +1,78 @@
+---
+title: Element.getAttribute()
+slug: Web/API/Element/getAttribute
+tags:
+ - API
+ - DOM
+ - Element
+ - メソッド
+ - リファレンス
+browser-compat: api.Element.getAttribute
+translation_of: Web/API/Element/getAttribute
+---
+{{APIRef("DOM")}}
+
+**`getAttribute()`** は {{domxref("Element")}} インターフェイスのメソッドで、この要素の指定された属性の値を返します。
+
+指定された属性が存在しない場合、値は `null` か `""` (空文字列)のどちらかになります。詳しくは[属性が存在しない場合](#属性が存在しない場合)を参照してください。
+
+## 構文
+
+```js
+let attribute = element.getAttribute(attributeName);
+```
+
+ここで、
+
+- `attribute` は `attributeName` の値を持つ文字列です。
+- `attributeName` は値を取得したい属性の名前です。
+
+## 例
+
+```js
+<!-- HTML 文書内の div の例 -->
+<div id="div1">Hi Champ!</div>
+
+// コンソールへの出力
+const div1 = document.getElementById('div1');
+//=> <div id="div1">Hi Champ!</div>
+
+const exampleAttr= div1.getAttribute('id');
+//=> "div1"
+
+const align = div1.getAttribute('align')
+//=> null
+```
+
+## 解説
+
+### 小文字化
+
+HTML 文書とされている DOM の HTML 要素に対して呼び出すと、 `getAttribute()` は処理前に引数を小文字化します。
+
+### 属性が存在しない場合
+
+基本的にはすべてのウェブブラウザー(限定的なリストですが Firefox, Internet Explorer, Opera の最新バージョン, Safari, Konqueror, iCab など)は、指定された要素に指定された属性が存在しない場合は `null` を返します。これは[現在の DOM 仕様書の草稿](https://dom.spec.whatwg.org/#dom-element-getattribute)で指定されています。一方、古い DOM 3 Core 仕様書では、このような場合の正しい返値は実際には空文字列となっています。そしていくつかの DOM の実装はこの動作を実装しています。実際、 `getAttribute()` の XUL (Gecko) での実装では、 DOM 3 Core 仕様書に従い空文字列を返します。結果的に、指定された要素に指定された属性が存在しない可能性があるのであれば、 {{domxref("element.hasAttribute()")}} を使用して属性の存在をチェックしてから `getAttribute()` を呼び出すべきでしょう。
+
+### ノンス値の受け取り
+
+セキュリティ上の理由で、スクリプト以外、例えば CSS セレクターから来た [CSP](/ja/docs/Web/HTTP/CSP) のノンスと、 `.getAttribute("nonce")` の呼び出しは隠蔽されます。
+
+```js example-bad
+let nonce = script.getAttribute('nonce');
+// 空文字列が返される
+```
+
+コンテンツ属性のノンスをるには、代わりに {{domxref("HTMLElement/nonce", "nonce")}} プロパティを使用してください。
+
+```js
+let nonce = script.nonce;
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
diff --git a/files/ja/web/api/element/getattributenames/index.html b/files/ja/web/api/element/getattributenames/index.html
deleted file mode 100644
index f353b84b74..0000000000
--- a/files/ja/web/api/element/getattributenames/index.html
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: Element.getAttributeNames()
-slug: Web/API/Element/getAttributeNames
-tags:
- - API
- - DOM
- - Element
- - getAttributeNames
- - メソッド
- - 属性
-translation_of: Web/API/Element/getAttributeNames
----
-<div>{{APIRef("DOM")}}</div>
-
-<p>{{domxref("Element")}} インターフェースの <strong><code>getAttributeNames()</code></strong> メソッドは要素の属性の名前を文字列の {{jsxref("Array")}} で返します。要素に属性がない場合は、空の配列を返します。</p>
-
-<p><code>getAttributeNames()</code> を {{domxref("Element.getAttribute","getAttribute()")}} と共に使用すると、 {{domxref("Element.attributes")}} にアクセスするよりメモリ効率やパフォーマンスが良くなります。</p>
-
-<h2 id="Syntax" name="Syntax">構文</h2>
-
-<pre class="syntaxbox notranslate"><em>let attributeNames</em> = element.getAttributeNames();
-</pre>
-
-<h2 id="Example" name="Example">例</h2>
-
-<pre class="brush:js notranslate">// 要素の属性に対して反復処理する
-for(let name of element.getAttributeNames()) {
- let value = element.getAttribute(name);
- console.log(name, value);
-}
-</pre>
-
-<h2 id="Polyfill" name="Polyfill">代替モジュール</h2>
-
-<pre class="brush:js notranslate">if (Element.prototype.getAttributeNames == undefined) {
- Element.prototype.getAttributeNames = function () {
- var attributes = this.attributes;
- var length = attributes.length;
- var result = new Array(length);
- for (var i = 0; i &lt; length; i++) {
- result[i] = attributes[i].name;
- }
- return result;
- };
-}</pre>
-
-<h2 id="Specifications" name="Specifications">仕様書</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">状態</th>
- <th scope="col">備考</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName("DOM WHATWG", "#dom-element-getattributenames", "Element.getAttributeNames")}}</td>
- <td>{{Spec2("DOM WHATWG")}}</td>
- <td>初回定義</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2>
-
-<div>
-<p>{{Compat("api.Element.getAttributeNames")}}</p>
-</div>
diff --git a/files/ja/web/api/element/getattributenames/index.md b/files/ja/web/api/element/getattributenames/index.md
new file mode 100644
index 0000000000..7aa98aca5b
--- /dev/null
+++ b/files/ja/web/api/element/getattributenames/index.md
@@ -0,0 +1,86 @@
+---
+title: Element.getAttributeNames()
+slug: Web/API/Element/getAttributeNames
+tags:
+ - API
+ - 属性
+ - DOM
+ - Element
+ - メソッド
+ - getAttributeNames
+browser-compat: api.Element.getAttributeNames
+translation_of: Web/API/Element/getAttributeNames
+---
+{{APIRef("DOM")}}
+
+**`getAttributeNames()`** は {{domxref("Element")}} インターフェースのメソッドで、この要素の属性名を文字列の {{jsxref("Array")}} で返します。要素に属性がない場合は、空の配列を返します。
+
+`getAttributeNames()` を {{domxref("Element.getAttribute","getAttribute()")}} と共に使用すると、 {{domxref("Element.attributes")}} にアクセスするよりメモリ効率やパフォーマンスが良くなります。
+
+**`getAttributeNames()`** から返される名前は*修飾*属性名です。すなわち、名前空間接頭辞がついた属性であり、名前空間接頭辞(実際の名前空間では*ない*)にコロンが続き、属性名が続きます(例えば **`xlink:href`**)。名前空間接頭辞のない属性は、そのままの名前になります(例えば **`href`**)。
+
+## 構文
+
+```js
+let attributeNames = element.getAttributeNames();
+```
+
+## 例
+
+以下の例は、次の方法を示しています。
+
+- 名前空間接頭辞のある属性については、 `getAttributeNames()` は属性名と一緒に名前空間接頭辞を返します。
+- 名前空間接頭辞のない属性については、 `getAttributeNames()` は属性名のみをそのまま返します。
+
+以下のことを理解することが重要です。
+
+1. DOM には名前空間に所属していても、名前空間接頭辞がない場合があります。
+2. 名前空間に所属しているが、名前空間接頭辞のない DOM 内の属性については、 `getAttributeNames()` は属性名だけを返し、その属性が名前空間に所属していることを示しません。
+
+以下の例では、このような「名前空間に所属しているが、名前空間接頭辞がない」場合を示しています。
+
+```js
+const element = document.createElement('a')
+
+// "href" 属性を名前空間なし、名前空間接頭辞なしで設定
+element.setAttribute('href', 'https://example.com')
+// "href" 属性を名前空間あり、 "xlink" 名前空間接頭辞で設定
+element.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', 'https://example.com')
+// "show" 属性を名前空間あり、名前空間接頭辞なしで設定
+element.setAttributeNS('http://www.w3.org/1999/xlink', 'show', 'new')
+
+// 要素の属性を反復処理する
+for (let name of element.getAttributeNames()) {
+ let value = element.getAttribute(name);
+ console.log(name, value);
+}
+
+// 出力結果:
+// href https://example.com
+// xlink:href https://example.com
+// show new
+```
+
+## ポリフィル
+
+```js
+if (Element.prototype.getAttributeNames == undefined) {
+ Element.prototype.getAttributeNames = function () {
+ var attributes = this.attributes;
+ var length = attributes.length;
+ var result = new Array(length);
+ for (var i = 0; i < length; i++) {
+ result[i] = attributes[i].name;
+ }
+ return result;
+ };
+}
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
diff --git a/files/ja/web/api/element/getattributenode/index.html b/files/ja/web/api/element/getattributenode/index.html
deleted file mode 100644
index 4d28b69f39..0000000000
--- a/files/ja/web/api/element/getattributenode/index.html
+++ /dev/null
@@ -1,63 +0,0 @@
----
-title: Element.getAttributeNode()
-slug: Web/API/Element/getAttributeNode
-tags:
- - API
- - DOM
- - Element
- - Method
- - Reference
-translation_of: Web/API/Element/getAttributeNode
----
-<div>{{ APIRef("DOM") }}</div>
-
-<p>指定された要素の指定された属性を、 <code>Attr</code> ノードとして返します。</p>
-
-<h2 id="Syntax">構文</h2>
-
-<pre class="eval"><em>var attrNode</em> = <em>element</em>.getAttributeNode(<em>attrName</em>);
-</pre>
-
-<ul>
- <li><code>attrNode</code> は指定の属性に対する <code>Attr</code> ノードです。</li>
- <li><code>attrName</code> は属性の名前を表す文字列です。</li>
-</ul>
-
-<h2 id="Example">Example</h2>
-
-<pre class="brush: js">// html: &lt;div id="top" /&gt;
-let t = document.getElementById("top");
-let idAttr = t.getAttributeNode("id");
-alert(idAttr.value == "top")
-</pre>
-
-<h2 id="Notes">注</h2>
-
-<p>HTML 文書としてフラグが立てられた DOM 内の HTML 要素に対して呼び出された場合、<code>getAttributeNode</code> は処理前に引数を小文字にします。</p>
-
-<p><code>Attr</code> ノードは <code>Node</code> を継承していますが、文書ツリーの一部と考えることはできません。一般の <code>Node</code> 属性、例えば <a href="/ja/docs/Web/API/Node/parentNode">parentNode</a>、 <a href="/ja/docs/Web/API/Node/previousSibling">previousSibling</a>、<a href="/ja/docs/Web/API/Node/nextSibling">nextSibling</a> などは <code>Attr</code> ノードでは <code>null</code> になります。しかしながら、 <code>ownerElement</code> プロパティではこの属性が属している要素を取得することができます。</p>
-
-<p>要素の属性の値を取得するためには、通常 <code>getAttributeNode</code> の代わりに <a href="/ja/docs/Web/API/Element/getAttribute">getAttribute</a> を使用してください。</p>
-
-<p>{{ DOMAttributeMethods() }}</p>
-
-<h2 id="Specifications">仕様書</h2>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">状態</th>
- <th scope="col">備考</th>
- </tr>
- <tr>
- <td>{{SpecName('DOM WHATWG','#dom-element-getattributenode','getAttributeNode()')}}</td>
- <td>{{Spec2('DOM WHATWG')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat("api.Element.getAttributeNode")}}</p>
diff --git a/files/ja/web/api/element/getattributenode/index.md b/files/ja/web/api/element/getattributenode/index.md
new file mode 100644
index 0000000000..c8e31861fd
--- /dev/null
+++ b/files/ja/web/api/element/getattributenode/index.md
@@ -0,0 +1,51 @@
+---
+title: Element.getAttributeNode()
+slug: Web/API/Element/getAttributeNode
+tags:
+ - API
+ - DOM
+ - Element
+ - メソッド
+ - リファレンス
+browser-compat: api.Element.getAttributeNode
+translation_of: Web/API/Element/getAttributeNode
+---
+{{ APIRef("DOM") }}
+
+この要素の指定された属性を、 `Attr` ノードとして返します。
+
+## 構文
+
+```js
+var attrNode = element.getAttributeNode(attrName);
+```
+
+- `attrNode` は指定の属性に対する `Attr` ノードです。
+- `attrName` は属性の名前を表す文字列です。
+
+## 例
+
+```js
+// html: <div id="top" />
+let t = document.getElementById("top");
+let idAttr = t.getAttributeNode("id");
+alert(idAttr.value == "top")
+```
+
+## メモ
+
+HTML 文書としてフラグが立てられた DOM 内の HTML 要素に対して呼び出された場合、`getAttributeNode` は処理前に引数を小文字にします。
+
+`Attr` ノードは `Node` を継承していますが、文書ツリーの一部と考えることはできません。一般の `Node` 属性、例えば [parentNode](/ja/docs/Web/API/Node/parentNode)、 [previousSibling](/ja/docs/Web/API/Node/previousSibling)、[nextSibling](/ja/docs/Web/API/Node/nextSibling) などは `Attr` ノードでは `null` になります。しかしながら、 `ownerElement` プロパティではこの属性が属している要素を取得することができます。
+
+要素の属性の値を取得するためには、通常 `getAttributeNode` の代わりに [getAttribute](/ja/docs/Web/API/Element/getAttribute) が使用されます。
+
+{{ DOMAttributeMethods() }}
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
diff --git a/files/ja/web/api/element/getattributens/index.html b/files/ja/web/api/element/getattributens/index.html
deleted file mode 100644
index ee03de1cab..0000000000
--- a/files/ja/web/api/element/getattributens/index.html
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: element.getAttributeNS
-slug: Web/API/Element/getAttributeNS
-tags:
- - DOM
- - Gecko
- - 翻訳中
-translation_of: Web/API/Element/getAttributeNS
----
-<p>{{ ApiRef("DOM") }}</p>
-
-<h3 id=".E6.A6.82.E8.A6.81" name=".E6.A6.82.E8.A6.81">概要</h3>
-
-<p><code>getAttributeNS</code> は指定の名前空間と名前の属性の文字列値を返します。もし指定の名前の属性が存在しなければ、戻り値は <code>null</code> または <code>""</code>(空文字列) のいずれかとなります。詳細は{{ Anch("注記") }} を参照。</p>
-
-<h3 id=".E6.A7.8B.E6.96.87" name=".E6.A7.8B.E6.96.87">構文</h3>
-
-<pre class="eval"><em>attrVal</em> =<em>element</em>.getAttributeNS(<em>namespace</em>,<em>name</em>)
-</pre>
-
-<h3 id=".E5.BC.95.E6.95.B0" name=".E5.BC.95.E6.95.B0">引数</h3>
-
-<ul>
- <li><code><em>attrVal</em> </code> は指定の属性の文字列値です。</li>
- <li><code><em>namespace</em> </code> は指定の属性の名前空間です。</li>
- <li><code><em>name</em> </code> は指定の属性の名前です。</li>
-</ul>
-
-<h3 id=".E4.BE.8B" name=".E4.BE.8B">例</h3>
-
-<pre class="eval">var div1 = document.getElementById("div1");
-var a = div1.getAttributeNS("www.mozilla.org/ns/specialspace/",
- "special-align");
-alert(a); // div の align 属性の値を表示します。
-</pre>
-
-<h3 id=".E6.B3.A8.E8.A8.98" name=".E6.B3.A8.E8.A8.98">注記</h3>
-
-<p><code>getAttributeNS</code> は <a href="/ja/DOM/element.getAttribute">getAttribute</a> と異なります。<code>getAttributeNS</code> は特定の名前空間に属している要求された属性をより深く特定することができます。上記の例では、属性は mozilla の架空の "specialspace" 名前空間に属しています。</p>
-
-<p>DOM4 より前の仕様では、このメソッドは属性が存在しない場合に <code>null</code> ではなく空文字列を返すように指定されていました。しかし、ほとんどのウェブ・ブラウザは <code>null</code> を返していました。DOM4 以降は、仕様でも <code>null</code> を返すように指定されました。しかしながら、いくつかの古いウェブ・ブラウザは空文字列を返します。そのため、指定の要素に指定の属性が存在しない可能性があるなら <code>getAttributeNS</code> を呼ぶ前に <a href="/ja/docs/Web/API/Element/hasAttributeNS"><code>hasAttributeNS</code></a> を使用して属性の存在を確かめる必要があります。</p>
-
-<p>{{ DOMAttributeMethods() }}</p>
-
-<h3 id=".E4.BB.95.E6.A7.98" name=".E4.BB.95.E6.A7.98">仕様</h3>
-
-<p><a class="external" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-ElGetAttrNS">DOM Level 2 Core: getAttributeNS</a></p>
diff --git a/files/ja/web/api/element/getattributens/index.md b/files/ja/web/api/element/getattributens/index.md
new file mode 100644
index 0000000000..7ec8113595
--- /dev/null
+++ b/files/ja/web/api/element/getattributens/index.md
@@ -0,0 +1,100 @@
+---
+title: Element.getAttributeNS()
+slug: Web/API/Element/getAttributeNS
+tags:
+ - API
+ - DOM
+ - Element
+ - メソッド
+ - リファレンス
+browser-compat: api.Element.getAttributeNS
+translation_of: Web/API/Element/getAttributeNS
+---
+{{APIRef("DOM")}}
+
+**`getAttributeNS()`** は {{domxref("Element")}} インターフェイスのメソッドで、指定された名前空間と名前を持つ属性の文字列値を返します。のような名前の属性が存在しない場合は、 `null` または `""` (空文字列のどちらかを返します。詳しくは{{Anch("メモ")}}を参照してください。
+
+## 構文
+
+```js
+attrVal = element.getAttributeNS(namespace, name)
+```
+
+### 引数
+
+- `namespace`
+ - : 指定された属性を探す名前空間です。
+- `name`
+ - : 探す属性の名前です。
+
+### 返値
+
+指定された属性の文字列値です。その属性が存在しない場合、結果は `null` になります。
+
+> **Note:** 古いバージョンの DOM 仕様書では、このメソッドが存在しない属性に対しては空文字列を返すと説明していました。しかし、 null の方が分かりやすいので、そのような実装はあまり行われませんでした。 DOM4 仕様書ではこのメソッドは存在しない属性に対して null を返すと書くようになりました。
+
+## 例
+
+以下の SVG 文書は独自の名前空間にある `foo` 属性の値を読み取ります。
+
+```xml
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:test="http://www.example.com/2014/test" width="40" height="40">
+
+ <circle id="target" cx="12" cy="12" r="10" stroke="#444"
+ stroke-width="2" fill="none" test:foo="Hello namespaced attribute!"/>
+
+ <script type="text/javascript">
+ var ns = 'http://www.example.com/2014/test';
+ var circle = document.getElementById( 'target' );
+
+ console.log( 'attribute test:foo: "' + circle.getAttributeNS( ns, 'foo' ) + '"' );
+ </script>
+</svg>
+```
+
+HTML5 文書では名前空間に対応していないため、この属性は `test:foo` でアクセスする必要があります。
+
+```html
+<!DOCTYPE html>
+<html>
+<body>
+
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:test="http://www.example.com/2014/test" width="40" height="40">
+ <circle id="target" cx="12" cy="12" r="10" stroke="#444" stroke-width="2"
+ fill="none" test:foo="Foo value"/>
+</svg>
+
+<script type="text/javascript">
+ var ns = 'http://www.example.com/2014/test';
+ var circle = document.getElementById( 'target' );
+ console.log('Attribute value: ' + circle.getAttribute('test:foo'));
+</script>
+
+</body>
+</html>
+```
+
+## メモ
+
+名前空間は XML 文書でのみ対応しています。 HTML5 文書では、代わりに `getAttribute()` を使用する必要があります。
+
+`getAttributeNS()` は {{domxref("element.getAttribute()",
+ "getAttribute()")}} とは異なり、特定の名前空間に属している要求された属性をより深く特定することができます。上記の例では、属性は Mozilla の架空の "specialspace" 名前空間に属しています。
+
+DOM4 より前の仕様では、このメソッドは属性が存在しない場合に null ではなく空文字列を返すように指定されていました。しかし、ほとんどのウェブブラウザーは null を返していました。 DOM4 以降は、仕様でも null を返すように指定されました。しかし、一部の古いウェブブラウザーは空文字列を返します。そのため、指定の要素に指定の属性が存在しない可能性があるなら、 `getAttributeNS` を呼ぶ前に {{domxref("element.hasAttributeNS()", "hasAttributeNS()")}} を使用して属性の存在を確かめる必要があります。
+
+{{DOMAttributeMethods}}
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [コードスニペット:getAttributeNS](/ja/docs/Mozilla/Add-ons/Code_snippets/getAttributeNS)
diff --git a/files/ja/web/api/element/getboundingclientrect/index.html b/files/ja/web/api/element/getboundingclientrect/index.html
deleted file mode 100644
index 69c2b2500a..0000000000
--- a/files/ja/web/api/element/getboundingclientrect/index.html
+++ /dev/null
@@ -1,112 +0,0 @@
----
-title: Element.getBoundingClientRect()
-slug: Web/API/Element/getBoundingClientRect
-tags:
- - API
- - Boundary
- - Bounding
- - Bounds
- - CSSOM View
- - Client
- - Containing
- - DOM
- - Element
- - Enclosing
- - Method
- - Minimum
- - Rectangle
- - Reference
- - Smallest
- - clientHeight
- - getBoundingClientRect
- - getClientRects
- - offsetHeight
- - scrollHeight
- - メソッド
-translation_of: Web/API/Element/getBoundingClientRect
----
-<div>{{APIRef("DOM")}}</div>
-
-<p><code><strong>Element.getBoundingClientRect()</strong></code> メソッドは、要素の寸法と、そのビューポートに対する位置を返します。</p>
-
-<h2 id="Syntax" name="Syntax">構文</h2>
-
-<pre class="syntaxbox notranslate"><em>domRect</em> = <em>element</em>.getBoundingClientRect();</pre>
-
-<h3 id="Value" name="Value">値</h3>
-
-<p>返値は、要素に対しての {{domxref("Element.getClientRects", "getClientRects()")}} が返す矩形の集合である {{domxref("DOMRect")}} オブジェクトです。つまり、要素に関連付けられている CSS の境界ボックスのことです。結果は境界ボックス全体を表す読み取り専用の <code>left</code>, <code>top</code>, <code>right</code>, <code>bottom</code>, <code>x</code>, <code>y</code>, <code>width</code>, <code>height</code> の各プロパティを持つ、要素全体を含む最小の矩形です。 <code>width</code> と <code>height</code> 以外のプロパティは、<strong>"<em>ビューポート</em></strong><em>の左上を基準</em>"としています。</p>
-
-<p style="display: block;"><img alt="DOMRect 値の説明" src="https://mdn.mozillademos.org/files/15087/rect.png" style="float: right; height: 300px; width: 300px;" title="Explanation of DOMRect values"></p>
-
-<p>空のボーダーボックスは完全に無視されます。もし要素のボーダーボックスの全てが空である場合は、 <code>width</code> と <code>height</code> が 0 で、 <code>top</code> と <code>left</code> は、要素に対する (コンテンツ順での) 最初の CSS ボックスの左上である矩形を返します。</p>
-
-<p>境界矩形を計算するときには、ビューポート領域(または他のスクロール可能な要素)のスクロール量が考慮されます。これは、スクロール位置が変更される度に (その値はビューポートの相対値であり、絶対値ではないため) 矩形の境界線のエッジ (<code>top</code>, <code>right</code>, <code>bottom</code>, <code>left</code>) が変更されることを意味しています。</p>
-
-<p>もし文書の左上隅を基準とする境界矩形が必要な場合は、現在のスクロール位置から独立した境界矩形を取得する <code>top</code> と <code>left</code> プロパティに、現在のスクロール位置を加えるだけです(これらは {{domxref("window.scrollX")}} と {{domxref("window.scrollY")}} で取得できます)。</p>
-
-<h3 id="Cross-browser_fallback" name="Cross-browser_fallback">クロスブラウザーの代替</h3>
-
-<p>高いクロスブラウザーの互換性を必要とするスクリプトでは、 <code>window.scrollX</code> と <code>window.scrollY</code> の代わりに {{domxref("window.pageXOffset")}} と {{domxref("window.pageYOffset")}} を使うことができます。これらのプロパティへのアクセスを使わない、次のようなスクリプトもあります。</p>
-
-<pre class="brush: js notranslate">// For scrollX
-(((t = document.documentElement) || (t = document.body.parentNode))
- &amp;&amp; typeof t.scrollLeft == 'number' ? t : document.body).scrollLeft
-// For scrollY
-(((t = document.documentElement) || (t = document.body.parentNode))
- &amp;&amp; typeof t.scrollTop == 'number' ? t : document.body).scrollTop
-</pre>
-
-<h2 id="Example" name="Example">例</h2>
-
-<pre class="brush: js notranslate">// rect は left, top, right, bottom, x, y, width, height の 8 つのプロパティを持つ DOMRect オブジェクト
-var rect = obj.getBoundingClientRect();
-</pre>
-
-<h2 id="Specification" name="Specification">仕様書</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">状態</th>
- <th scope="col">備考</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName("CSSOM View", "#dom-element-getboundingclientrect", "Element.getBoundingClientRect()")}}</td>
- <td>{{Spec2("CSSOM View")}}</td>
- <td>初回定義</td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Notes" name="Notes">メモ</h3>
-
-<p>モダンブラウザーでは返された <code>DOMRect</code> オブジェクトを変更することが可能ですが、これは <code>DOMRectReadOnly</code> を返す古いバージョンには該当しません。IE と Edge では、返された <a href="https://msdn.microsoft.com/en-us/library/hh826029(VS.85).aspx"> <code>ClientRect</code></a> オブジェクトに対し、見過ごされたプロパティを追加することができず、<code>x</code> と <code>y</code> を補填することができません。</p>
-
-<p>互換性問題 (下記参照) のため、 <code>left</code>, <code>top</code>, <code>right</code>, <code>bottom</code> のみに頼ることが最も安全です。</p>
-
-<p>返された <code>DOMRect</code> オブジェクトのプロパティは、自身のプロパティではありません。<code>in</code> 演算子や <code>for...in</code> では返されたプロパティを見つけますが、他の <code>Object.keys()</code> のような API では失敗します。さらに予期しないことに、 <code>Object.assign()</code> のような ES2015 やより新しい機能では、返されるプロパティのコピーに失敗します。</p>
-
-<pre class="brush: js notranslate">rect = elt.getBoundingClientRect()
-// emptyObj の結果は {}
-emptyObj = Object.assign({}, rect)
-emptyObj = { ...rect }
-{width, ...emptyObj} = rect
-</pre>
-
-<p><code>DOMRect</code> の <code>top</code>, <code>left</code>, <code>right</code>, <code>bottom</code> の各プロパティは他のプロパティ値から計算されます。</p>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat("api.Element.getBoundingClientRect")}}</p>
-
-<h2 id="See_also" name="See_also">関連情報</h2>
-
-<ul>
- <li>{{domxref("Element.getClientRects", "getClientRects()")}}</li>
- <li><a href="https://msdn.microsoft.com/en-us/library/ms536433(VS.85).aspx">MSDN: <code>getBoundingClientRect</code></a></li>
- <li><a href="https://msdn.microsoft.com/en-us/library/hh826029(VS.85).aspx">MSDN: <code>ClientRect</code></a>, an earlier version of <code>DOMRect</code></li>
-</ul>
diff --git a/files/ja/web/api/element/getboundingclientrect/index.md b/files/ja/web/api/element/getboundingclientrect/index.md
new file mode 100644
index 0000000000..ce2316632b
--- /dev/null
+++ b/files/ja/web/api/element/getboundingclientrect/index.md
@@ -0,0 +1,179 @@
+---
+title: Element.getBoundingClientRect()
+slug: Web/API/Element/getBoundingClientRect
+tags:
+ - API
+ - 境界
+ - Bounding
+ - Bounds
+ - CSSOM View
+ - Client
+ - Containing
+ - DOM
+ - Element
+ - Enclosing
+ - メソッド
+ - Minimum
+ - 長方形
+ - リファレンス
+ - Smallest
+ - clientHeight
+ - getBoundingClientRect
+ - getClientRects
+ - offsetHeight
+ - scrollHeight
+browser-compat: api.Element.getBoundingClientRect
+translation_of: Web/API/Element/getBoundingClientRect
+---
+{{APIRef("DOM")}}
+
+**`Element.getBoundingClientRect()`** メソッドは、要素の寸法と、その[ビューポート](/ja/docs/Glossary/Viewport)に対する相対位置に関する情報を返します。
+
+## 構文
+
+```js
+domRect = element.getBoundingClientRect();
+```
+
+### 値
+
+返値は {{domxref("DOMRect")}} オブジェクトで、(パディングと境界の幅を含む)要素全体が収まる最小の長方形です。`left`, `top`, `right`, `bottom`, `x`, `y`, `width`, `height` の各プロパティは、長方形の全体の位置と大きさをピクセル数で記述します。 `width` と `height` 以外のプロパティは、ビューポートの左上を基準としています。
+
+![](element-box-diagram.png)
+
+このメソッドが返す {{domxref("DOMRect")}} オブジェクトの `width` と `height` プロパティは、内容物の幅や高さだけでなく、 `padding` と `border-width` も含まれます。標準的なボックスモデルでは、これは要素の `width` または `height` プロパティ + `padding` + `border-width` と同じになります。しかし、もし [`box-sizing: border-box`](/ja/docs/Web/CSS/box-sizing) が要素に設定されていれば、これは `width` または `height` と等しくなります。
+
+返される値は、その要素に対して {{domxref("Element.getClientRects", "getClientRects()")}} が返す矩形の和、つまり、その要素に関連する CSS の border-box と見なすことができます。
+
+空のボーダーボックスは完全に無視されます。もし要素のボーダーボックスの全てが空である場合は、 `width` と `height` が 0 で、 `top` と `left` は、要素に対する(コンテンツ順での)最初の CSS ボックスの左上である矩形を返します。
+
+境界矩形を計算するときには、ビューポート領域(または他のスクロール可能な要素)のスクロール量が考慮されます。これは、スクロール位置が変更される度に(その値はビューポートの相対値であり、絶対値ではないため) 矩形の境界の辺 (`top`, `right`, `bottom`, `left`) が変更されることを意味しています。
+
+もし文書の左上隅を基準とする境界矩形が必要な場合は、現在のスクロール位置から独立した境界矩形を取得する `top` と `left` プロパティに、現在のスクロール位置を加えるだけです(これらは {{domxref("window.scrollX")}} と {{domxref("window.scrollY")}} で取得できます)。
+
+### ブラウザー間で互換性のある代替手段
+
+高いブラウザー間の互換性を必要とするスクリプトでは、 `window.scrollX` と `window.scrollY` の代わりに {{domxref("window.pageXOffset")}} と {{domxref("window.pageYOffset")}} を使うことができます。これらのプロパティへのアクセスを使わない、次のようなスクリプトもあります。
+
+```js
+// For scrollX
+(((t = document.documentElement) || (t = document.body.parentNode))
+ && typeof t.scrollLeft == 'number' ? t : document.body).scrollLeft
+// For scrollY
+(((t = document.documentElement) || (t = document.body.parentNode))
+ && typeof t.scrollTop == 'number' ? t : document.body).scrollTop
+```
+
+## 例
+
+### 基本
+
+この単純な例では、単純な `<div>` 要素のクライアント矩形を表す `DOMRect` オブジェクトを取得し、その下にプロパティを出力しています。
+
+```html
+<div></div>
+```
+
+```css
+div {
+ width: 400px;
+ height: 200px;
+ padding: 20px;
+ margin: 50px auto;
+ background: purple;
+}
+```
+
+```js
+let elem = document.querySelector('div');
+let rect = elem.getBoundingClientRect();
+for (var key in rect) {
+ if(typeof rect[key] !== 'function') {
+ let para = document.createElement('p');
+ para.textContent = `${ key } : ${ rect[key] }`;
+ document.body.appendChild(para);
+ }
+}
+```
+
+{{EmbedLiveSample('Basic', '100%', 640)}}
+
+なお、 `width`/`height` は `width`/`height` + `padding` と等しくなります。
+
+また、`x`/`left`, `y`/`top`, `right`, `bottom` の値は、それぞれのケースで、ビューポートの関連する辺から要素のその側までの絶対的な距離に等しいことに注意してください。
+
+#### スクロール
+
+この例では、文書がスクロールされたときに、クライアント矩形の境界がどのように変化するかを示しています。
+
+```html
+<div id="example"></div>
+<div id="controls"></div>
+```
+
+```css
+div#example {
+ width: 400px;
+ height: 200px;
+ padding: 20px;
+ margin: 50px auto;
+ background: purple;
+}
+
+body { padding-bottom: 1000px; }
+p { margin: 0; }
+```
+
+```js
+function update() {
+ const container = document.getElementById("controls");
+ const elem = document.getElementById("example");
+ const rect = elem.getBoundingClientRect();
+
+ container.innerHTML = '';
+ for (let key in rect) {
+ if(typeof rect[key] !== 'function') {
+ let para = document.createElement('p');
+ para.textContent = `${ key } : ${ rect[key] }`;
+ container.appendChild(para);
+ }
+ }
+}
+
+document.addEventListener('scroll', update);
+update();
+```
+
+{{EmbedLiveSample('Scrolling', '100%', 640)}}
+
+## 仕様書
+
+{{Specifications}}
+
+### メモ
+
+最近のブラウザーでは返された `DOMRect` オブジェクトを変更することが可能ですが、これは `DOMRectReadOnly` を返す古いバージョンには該当しません。IE と Edge では、返された [`ClientRect`](<https://msdn.microsoft.com/library/hh826029(VS.85).aspx>) オブジェクトに対し、見過ごされたプロパティを追加することができず、`x` と `y` を補填することができません。
+
+互換性問題 (下記参照) のため、 `left`, `top`, `right`, `bottom` のみに頼ることが最も安全です。
+
+返された `DOMRect` オブジェクトのプロパティは、自身のプロパティではありません。`in` 演算子や `for...in` では返されたプロパティを見つけますが、他の `Object.keys()` のような API では失敗します。さらに予期しないことに、 `Object.assign()` のような ES2015 やより新しい機能では、返されるプロパティのコピーに失敗します。
+
+```js
+rect = elt.getBoundingClientRect()
+// emptyObj の結果は {}
+emptyObj = Object.assign({}, rect)
+emptyObj = { ...rect }
+{width, ...emptyObj} = rect
+```
+
+`DOMRect` の `top`, `left`, `right`, `bottom` の各プロパティは他のプロパティ値から計算されます。
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Element.getClientRects", "getClientRects()")}}
+- [MSDN: `getBoundingClientRect`](<https://msdn.microsoft.com/library/ms536433(VS.85).aspx>)
+- [MSDN: `ClientRect`](<https://msdn.microsoft.com/library/hh826029(VS.85).aspx>)、初期バージョンの `DOMRect`
diff --git a/files/ja/web/api/element/getclientrects/index.html b/files/ja/web/api/element/getclientrects/index.html
deleted file mode 100644
index f8276ed1cb..0000000000
--- a/files/ja/web/api/element/getclientrects/index.html
+++ /dev/null
@@ -1,231 +0,0 @@
----
-title: Element.getClientRects()
-slug: Web/API/Element/getClientRects
-tags:
- - API
- - CSSOM View
- - Element
- - Method
- - Reference
- - clientHeight
- - getBoundingClientRect
- - getClientRects
- - offsetHeight
- - scrollHeight
-translation_of: Web/API/Element/getClientRects
----
-<p>{{APIRef("DOM")}}</p>
-
-<p><strong><code>getClientRects()</code></strong> は {{domxref("Element")}} インターフェイスのメソッドで、クライアントにあるそれぞれの <a href="/ja/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model">CSS 境界ボックス</a>の境界線を示す {{DOMxRef("DOMRect")}} オブジェクトのコレクションを返します。</p>
-
-<p>多くの要素はそれぞれ1つの境界ボックスしか持ちませんが、複数行の<a href="/ja/docs/Web/HTML/Inline_elements">インライン要素</a> (例えば複数行にまたがる {{HTMLElement("span")}} 要素、既定の場合) には行ごとに囲む境界ボックスがあります。</p>
-
-<h2 id="Syntax" name="Syntax">構文</h2>
-
-<pre class="syntaxbox notranslate">let <var>rectCollection</var> = <var>object</var>.getClientRects();</pre>
-
-<h3 id="Return_value" name="Return_value">返値</h3>
-
-<p>返される値は {{DOMxRef("DOMRect")}} オブジェクトのコレクションで、要素に関連付けられた CSS の境界ボックスごとに 1 つずつ用意されます。それぞれの {{DOMxRef("DOMRect")}} オブジェクトには読み取り専用の <code>left</code>, <code>top</code>, <code>right</code>, <code>bottom</code> の各プロパティがあり、ビューポートの左上からの境界ボックスの座標をピクセル数で表します。キャプションを持つ表の場合、キャプションがテーブルの境界ボックスの外側にあっても含まれます。外部の <code>&lt;svg&gt;</code> 以外の SVG 要素に対して呼び出された場合、結果として得られる矩形の相対的な「ビューポート」は、その要素の外部の <code>&lt;svg&gt;</code> が確立したビューポートになります (明確にするために、矩形は外部の <code>&lt;svg&gt;</code> の <code>viewBox</code> 変形によっても変換されます)。</p>
-
-<p>本来、Microsoft はこのメソッドがテキストの各行に対して <code>TextRectangle</code> オブジェクトを返すようにしていました。しかし、 CSSOM の作業草案では、各境界ボックスに対して {{DOMxRef("DOMRect")}} を返すように指定しています。インライン要素では、この二つの定義は同じです。しかし、ブロック要素の場合、Mozilla は単一の矩形のみを返します。</p>
-
-<p>{{Fx_MinVersion_Note(3.5, "Firefox 3.5 で <code>width</code> と <code>height</code> の各プロパティが <code>TextRectangle</code> オブジェクトに追加されました。")}}</p>
-
-<p>矩形を計算する際には、ビューポート領域 (またはその他のスクロール可能な要素) のスクロール量が考慮されます。</p>
-
-<p>返される矩形には、オーバーフローする可能性のある子要素の境界は含まれていません。</p>
-
-<p>HTML の {{HtmlElement("area")}} 要素、それ自体が何もレンダリングしない SVG 要素、 <code>display:none</code> の要素、そして一般的に直接レンダリングされない要素については、空のリストが返されます。</p>
-
-<p>CSS ボックスで境界ボックスが空であっても矩形が返されます。 <code>left</code>, <code>top</code>, <code>right</code>, <code>bottom</code> の各座標はなお意味を持っています。</p>
-
-
-
-<p>小数のピクセルオフセットが可能です。</p>
-
-<h2 id="Examples" name="Examples">例</h2>
-
-<p>これらの例では、様々な色でクライアント矩形を描画しています。クライアント矩形を描画する JavaScript 関数は、 <code>withClientRectsOverlay</code> クラスを介してマークアップに接続されていることに注意してください。</p>
-
-<h3 id="HTML">HTML</h3>
-
-<p>例 1: このHTMLは、 <code>&lt;span&gt;</code> 要素を含む3つの段落を生成し、それぞれを <code>&lt;div&gt;</code> ブロックに埋め込んでいます。2 番目のブロックの段落と 3 番目のブロックの <code>&lt;span&gt;</code> 要素には、クライアントの矩形が描画されます。</p>
-
-<pre class="brush: html notranslate">&lt;h3&gt;A paragraph with a span inside&lt;/h3&gt;
-&lt;p&gt;Both the span and the paragraph have a border set. The
- client rects are in red. Note that the p has onlyone border
- box, while the span has multiple border boxes.&lt;/p&gt;
-
-&lt;div&gt;
- &lt;strong&gt;Original&lt;/strong&gt;
- &lt;p&gt;
- &lt;span&gt;Paragraph that spans multiple lines&lt;/span&gt;
- &lt;/p&gt;
-&lt;/div&gt;
-
-&lt;div&gt;
- &lt;strong&gt;p's rect&lt;/strong&gt;
- &lt;p class="withClientRectsOverlay"&gt;
- &lt;span&gt;Paragraph that spans multiple lines&lt;/span&gt;
- &lt;/p&gt;
-&lt;/div&gt;
-
-&lt;div&gt;
- &lt;strong&gt;span's rect&lt;/strong&gt;
- &lt;p&gt;
- &lt;span class="withClientRectsOverlay"&gt;Paragraph that spans multiple lines&lt;/span&gt;
- &lt;/p&gt;
-&lt;/div&gt;</pre>
-
-<p>例 2: このHTMLは3つの順序付きリストを生成します。2 番目のブロックの <code>&lt;ol&gt;</code> と 3 番目のブロックの各 <code>&lt;li&gt;</code> 要素に対してクライアントの矩形が描かれています。</p>
-
-<pre class="brush: html notranslate">&lt;h3&gt;A list&lt;/h3&gt;
-&lt;p&gt;Note that the border box doesn't include the number, so
- neither do the client rects.&lt;/p&gt;
-
-&lt;div&gt;
- &lt;strong&gt;Original&lt;/strong&gt;
- &lt;ol&gt;
- &lt;li&gt;Item 1&lt;/li&gt;
- &lt;li&gt;Item 2&lt;/li&gt;
- &lt;/ol&gt;
-&lt;/div&gt;
-
-&lt;div&gt;
- &lt;strong&gt;ol's rect&lt;/strong&gt;
- &lt;ol class="withClientRectsOverlay"&gt;
- &lt;li&gt;Item 1&lt;/li&gt;
- &lt;li&gt;Item 2&lt;/li&gt;
- &lt;/ol&gt;
-&lt;/div&gt;
-
-&lt;div&gt;
- &lt;strong&gt;each li's rect&lt;/strong&gt;
- &lt;ol&gt;
- &lt;li class="withClientRectsOverlay"&gt;Item 1&lt;/li&gt;
- &lt;li class="withClientRectsOverlay"&gt;Item 2&lt;/li&gt;
- &lt;/ol&gt;
-&lt;/div&gt;</pre>
-
-<p>例 3: この HTML はキャプション付きの 2 つの表を生成します。クライアント矩形は 2 番目のブロックの <code>&lt;table&gt;</code> で描画されます。</p>
-
-<pre class="brush: html notranslate">&lt;h3&gt;A table with a caption&lt;/h3&gt;
-&lt;p&gt;Although the table's border box doesn't include the
- caption, the client rects do include the caption.&lt;/p&gt;
-
-&lt;div&gt;
-  &lt;strong&gt;Original&lt;/strong&gt;
-  &lt;table&gt;
-  &lt;caption&gt;caption&lt;/caption&gt;
-  &lt;thead&gt;
-     &lt;tr&gt;&lt;th&gt;thead&lt;/th&gt;&lt;/tr&gt;
-   &lt;/thead&gt;
-   &lt;tbody&gt;
-     &lt;tr&gt;&lt;td&gt;tbody&lt;/td&gt;&lt;/tr&gt;
-   &lt;/tbody&gt;
-  &lt;/table&gt;
-&lt;/div&gt;
-
-&lt;div&gt;
-  &lt;strong&gt;table's rect&lt;/strong&gt;
-  &lt;table class="withClientRectsOverlay"&gt;
-  &lt;caption&gt;caption&lt;/caption&gt;
-  &lt;thead&gt;
-     &lt;tr&gt;&lt;th&gt;thead&lt;/th&gt;&lt;/tr&gt;
-  &lt;/thead&gt;
-  &lt;tbody&gt;
-     &lt;tr&gt;&lt;td&gt;tbody&lt;/td&gt;&lt;/tr&gt;
-  &lt;/tbody&gt;
-  &lt;/table&gt;
-&lt;/div&gt;</pre>
-
-<h3 id="CSS">CSS</h3>
-
-<p>CSS は、最初の例では各 <code>&lt;div&gt;</code> ブロック内の段落と <code>&lt;span&gt;</code> の周りに、2番目の例では <code>&lt;ol&gt;</code> と <code>&lt;li&gt;</code> の周りに、3番目の例では <code>&lt;table&gt;</code>, <code>&lt;th&gt;</code>, <code>&lt;td&gt;</code> の各要素の周りに境界線を描画します。</p>
-
-<pre class="brush: css notranslate">strong {
- text-align: center;
-}
-div {
- display: inline-block;
- width: 150px;
-}
-div p, ol, table {
- border: 1px solid blue;
-}
-span, li, th, td {
- border: 1px solid green;
-}</pre>
-
-<h3 id="JavaScript">JavaScript</h3>
-
-<p>JavaScriptコードは、 CSS のクラス <code>withClientRectsOverlay</code> が割り当てられているすべてのHTML要素について、クライアント矩形を描画します。</p>
-
-<pre class="brush: js notranslate">function addClientRectsOverlay(elt) {
-  /* Absolutely position a div over each client rect so that its border width
-  is the same as the rectangle's width.
-  Note: the overlays will be out of place if the user resizes or zooms. */
-  var rects = elt.getClientRects();
-  for (var i = 0; i != rects.length; i++) {
-    var rect = rects[i];
-    var tableRectDiv = document.createElement('div');
-   tableRectDiv.style.position = 'absolute';
-   tableRectDiv.style.border = '1px solid red';
-    var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
-    var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
-   tableRectDiv.style.margin = tableRectDiv.style.padding = '0';
-   tableRectDiv.style.top = (rect.top + scrollTop) + 'px';
-   tableRectDiv.style.left = (rect.left + scrollLeft) + 'px';
-   // We want rect.width to be the border width, so content width is 2px less.
-   tableRectDiv.style.width = (rect.width - 2) + 'px';
-   tableRectDiv.style.height = (rect.height - 2) + 'px';
-   document.body.appendChild(tableRectDiv);
- }
-}
-
-(function() {
- /* Call function addClientRectsOverlay(elt) for all elements with
- assigned class "withClientRectsOverlay" */
- var elt = document.getElementsByClassName('withClientRectsOverlay');
- for (var i = 0; i &lt; elt.length; i++) {
- addClientRectsOverlay(elt[i]);
- }
-})();</pre>
-
-<h3 id="Result" name="Result">結果</h3>
-
-<p>{{EmbedLiveSample('Examples', 680, 650)}}</p>
-
-<h2 id="Specifications" name="Specifications">仕様書</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">状態</th>
- <th scope="col">備考</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName("CSSOM View", "#dom-element-getclientrects", "Element.getClientRects()")}}</td>
- <td>{{Spec2("CSSOM View")}}</td>
- <td>初回定義</td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Notes" name="Notes">補足</h3>
-
-<p><code>getClientRects()</code> は MS IE の DHTML オブジェクトモデルで導入されたのが最初です。</p>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat("api.Element.getClientRects")}}</p>
-
-<h2 id="See_also" name="See_also">関連情報</h2>
-
-<ul>
- <li>{{DOMxRef("Element.getBoundingClientRect()")}}</li>
-</ul>
diff --git a/files/ja/web/api/element/getclientrects/index.md b/files/ja/web/api/element/getclientrects/index.md
new file mode 100644
index 0000000000..2a1c0f613a
--- /dev/null
+++ b/files/ja/web/api/element/getclientrects/index.md
@@ -0,0 +1,225 @@
+---
+title: Element.getClientRects()
+slug: Web/API/Element/getClientRects
+tags:
+ - API
+ - CSSOM View
+ - Element
+ - メソッド
+ - リファレンス
+ - clientHeight
+ - getBoundingClientRect
+ - getClientRects
+ - offsetHeight
+ - scrollHeight
+browser-compat: api.Element.getClientRects
+translation_of: Web/API/Element/getClientRects
+---
+{{APIRef("DOM")}}
+
+**`getClientRects()`** は {{domxref("Element")}} インターフェイスのメソッドで、クライアントにあるそれぞれの [CSS 境界ボックス](/ja/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model)の境界線を示す {{DOMxRef("DOMRect")}} オブジェクトのコレクションを返します。
+
+多くの要素はそれぞれ 1 つの境界ボックスしか持ちませんが、複数行の[インライン要素](/ja/docs/Web/HTML/Inline_elements) (例えば複数行にまたがる {{HTMLElement("span")}} 要素、既定の場合)には行ごとに囲む境界ボックスがあります。
+
+## 構文
+
+```js
+let rectCollection = object.getClientRects();
+```
+
+### 返値
+
+返される値は {{DOMxRef("DOMRect")}} オブジェクトのコレクションで、要素に関連付けられた CSS の境界ボックスごとに 1 つずつ用意されます。それぞれの {{DOMxRef("DOMRect")}} オブジェクトには読み取り専用の `left`, `top`, `right`, `bottom` の各プロパティがあり、ビューポートの左上からの境界ボックスの座標をピクセル数で表します。キャプションを持つ表の場合、キャプションがテーブルの境界ボックスの外側にあっても含まれます。外部の `<svg>` 以外の SVG 要素に対して呼び出された場合、結果として得られる矩形の相対的な「ビューポート」は、その要素の外部の `<svg>` が確立したビューポートになります(明確にするために、矩形は外部の `<svg>` の `viewBox` 変形によっても変換されます)。
+
+本来、Microsoft はこのメソッドがテキストの各行に対して `TextRectangle` オブジェクトを返すようにしていました。しかし、 CSSOM の作業草案では、各境界ボックスに対して {{DOMxRef("DOMRect")}} を返すように指定しています。インライン要素では、この 2 つの定義は同じです。しかし、ブロック要素の場合、Mozilla は単一の矩形のみを返します。
+
+{{Fx_MinVersion_Note(3.5, "Firefox 3.5 で <code>width</code> と <code>height</code> の各プロパティが <code>TextRectangle</code> オブジェクトに追加されました。")}}
+
+矩形を計算する際には、ビューポート領域(またはその他のスクロール可能な要素)のスクロール量が考慮されます。
+
+返される矩形には、オーバーフローする可能性のある子要素の境界は含まれていません。
+
+HTML の {{HtmlElement("area")}} 要素、それ自体が何もレンダリングしない SVG 要素、 `display:none` の要素、そして一般的に直接レンダリングされない要素については、空のリストが返されます。
+
+CSS ボックスで境界ボックスが空であっても矩形が返されます。 `left`, `top`, `right`, `bottom` の各座標はなお意味を持っています。
+
+小数のピクセルオフセットが可能です。
+
+## 例
+
+これらの例では、様々な色でクライアント矩形を描画しています。クライアント矩形を描画する JavaScript 関数は、 `withClientRectsOverlay` クラスを介してマークアップに接続されていることに注意してください。
+
+### HTML
+
+例 1: このHTMLは、 `<span>` 要素を含む3つの段落を生成し、それぞれを `<div>` ブロックに埋め込んでいます。2 番目のブロックの段落と 3 番目のブロックの `<span>` 要素には、クライアントの矩形が描画されます。
+
+```html
+<h3>A paragraph with a span inside</h3>
+<p>Both the span and the paragraph have a border set. The
+ client rects are in red. Note that the p has only one border
+ box, while the span has multiple border boxes.</p>
+
+<div>
+ <strong>Original</strong>
+ <p>
+ <span>Paragraph that spans multiple lines</span>
+ </p>
+</div>
+
+<div>
+ <strong>p's rect</strong>
+ <p class="withClientRectsOverlay">
+ <span>Paragraph that spans multiple lines</span>
+ </p>
+</div>
+
+<div>
+ <strong>span's rect</strong>
+ <p>
+ <span class="withClientRectsOverlay">Paragraph that spans multiple lines</span>
+ </p>
+</div>
+```
+
+例 2: この HTML は 3 つの順序付きリストを生成します。2 番目のブロックの `<ol>` と 3 番目のブロックの各 `<li>` 要素に対してクライアントの矩形が描かれています。
+
+```html
+<h3>A list</h3>
+<p>Note that the border box doesn't include the number, so
+ neither do the client rects.</p>
+
+<div>
+ <strong>Original</strong>
+ <ol>
+ - Item 1</li>
+ - Item 2</li>
+ </ol>
+</div>
+
+<div>
+ <strong>ol's rect</strong>
+ <ol class="withClientRectsOverlay">
+ - Item 1</li>
+ - Item 2</li>
+ </ol>
+</div>
+
+<div>
+ <strong>each li's rect</strong>
+ <ol>
+ <li class="withClientRectsOverlay">Item 1</li>
+ <li class="withClientRectsOverlay">Item 2</li>
+ </ol>
+</div>
+```
+
+例 3: この HTML はキャプション付きの 2 つの表を生成します。クライアント矩形は 2 番目のブロックの `<table>` で描画されます。
+
+```html
+<h3>A table with a caption</h3>
+<p>Although the table's border box doesn't include the
+ caption, the client rects do include the caption.</p>
+
+<div>
+ <strong>Original</strong>
+ <table>
+ <caption>caption</caption>
+ <thead>
+ <tr><th>thead</th></tr>
+ </thead>
+ <tbody>
+ <tr><td>tbody</td></tr>
+ </tbody>
+ </table>
+</div>
+
+<div>
+ <strong>table's rect</strong>
+ <table class="withClientRectsOverlay">
+ <caption>caption</caption>
+ <thead>
+ <tr><th>thead</th></tr>
+ </thead>
+ <tbody>
+ <tr><td>tbody</td></tr>
+ </tbody>
+ </table>
+</div>
+```
+
+### CSS
+
+CSS は、最初の例では各 `<div>` ブロック内の段落と `<span>` の周りに、2番目の例では `<ol>` と `<li>` の周りに、3番目の例では `<table>`, `<th>`, `<td>` の各要素の周りに境界線を描画します。
+
+```css
+strong {
+ text-align: center;
+}
+div {
+ display: inline-block;
+ width: 150px;
+}
+div p, ol, table {
+ border: 1px solid blue;
+}
+span, li, th, td {
+ border: 1px solid green;
+}
+```
+
+### JavaScript
+
+JavaScriptコードは、 CSS のクラス `withClientRectsOverlay` が割り当てられているすべてのHTML要素について、クライアント矩形を描画します。
+
+```js
+function addClientRectsOverlay(elt) {
+ /* Absolutely position a div over each client rect so that its border width
+ is the same as the rectangle's width.
+ Note: the overlays will be out of place if the user resizes or zooms. */
+ var rects = elt.getClientRects();
+ for (var i = 0; i != rects.length; i++) {
+ var rect = rects[i];
+ var tableRectDiv = document.createElement('div');
+ tableRectDiv.style.position = 'absolute';
+ tableRectDiv.style.border = '1px solid red';
+ var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
+ var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
+ tableRectDiv.style.margin = tableRectDiv.style.padding = '0';
+ tableRectDiv.style.top = (rect.top + scrollTop) + 'px';
+ tableRectDiv.style.left = (rect.left + scrollLeft) + 'px';
+ // We want rect.width to be the border width, so content width is 2px less.
+ tableRectDiv.style.width = (rect.width - 2) + 'px';
+ tableRectDiv.style.height = (rect.height - 2) + 'px';
+ document.body.appendChild(tableRectDiv);
+ }
+}
+
+(function() {
+ /* Call function addClientRectsOverlay(elt) for all elements with
+ assigned class "withClientRectsOverlay" */
+ var elt = document.getElementsByClassName('withClientRectsOverlay');
+ for (var i = 0; i < elt.length; i++) {
+ addClientRectsOverlay(elt[i]);
+ }
+})();
+```
+
+### 結果
+
+{{EmbedLiveSample('Examples', 680, 650)}}
+
+## 仕様書
+
+{{Specifications}}
+
+### メモ
+
+`getClientRects()` は MS IE の DHTML オブジェクトモデルで導入されたのが最初です。
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{DOMxRef("Element.getBoundingClientRect()")}}
diff --git a/files/ja/web/api/element/getelementsbyclassname/index.html b/files/ja/web/api/element/getelementsbyclassname/index.html
deleted file mode 100644
index c20756a14b..0000000000
--- a/files/ja/web/api/element/getelementsbyclassname/index.html
+++ /dev/null
@@ -1,113 +0,0 @@
----
-title: Element.getElementsByClassName()
-slug: Web/API/Element/getElementsByClassName
-tags:
- - API
- - Classes
- - Element
- - Method
- - Reference
- - getElementsByClassName
-translation_of: Web/API/Element/getElementsByClassName
----
-<div>{{APIRef("DOM")}}</div>
-
-<p><span class="seoSummary">{{domxref("Element")}} の <strong><code>getElementsByClassName()</code></strong> メソッドは、引数で与えられたクラス名を含むすべての子要素を、ライブな {{domxref("HTMLCollection")}}で返します。 </span></p>
-
-<p>{{domxref("Document.getElementsByClassName", "Document.getElementsByClassName()")}} メソッドはこのメソッドとほぼ同様に動作しますが、{{domxref("Document")}} 全体に働きます。特定されたドキュメントルート要素の子孫のうち、与えられたクラス名に合う複数の要素を返します。</p>
-
-<h2 id="Syntax" name="Syntax">構文</h2>
-
-<pre class="syntaxbox notranslate"><var>var <em>elements</em></var> = <em>element</em>.getElementsByClassName(<em>names</em>);</pre>
-
-<h3 id="Parameters" name="Parameters">引数</h3>
-
-<dl>
- <dt><code>names</code></dt>
- <dd>マッチさせる一つ以上のクラス名を表す {{domxref("DOMString")}} で、クラス名は空白区切りで指定できます。</dd>
-</dl>
-
-<h3 id="Return_value" name="Return_value">戻り値</h3>
-
-<p><code>names</code> で指定したすべてのクラスを持つすべての要素のリストである <em>live</em> な {{ domxref("HTMLCollection") }} です。</p>
-
-<h2 id="Usage_notes" name="Usage_notes">使用上の注意</h2>
-
-<p>この関数が返すコレクションは常に <em>live</em> です。つまり、この関数を呼び出された要素をルートとする DOM ツリーの現在の状態が常に反映されています。サブツリー上で <code>names</code> にマッチする新しい要素が追加されたり、サブツリー上にある <code>names</code> にマッチしなかった要素が <code>names</code> にマッチするよう変更された場合、すぐにこのコレクションに追加されます。</p>
-
-<p>逆もしかりです。<code>names</code> にマッチしなくなったりツリーから外された要素は、すぐにコレクションから除外されます。</p>
-
-<div class="note">
-<p>クラス名は<a href="/ja/docs/Web/HTML/Quirks_Mode_and_Standards_Mode">後方互換モード</a>では大文字・小文字を区別されず、それ以外では区別されます。</p>
-</div>
-
-<h2 id="Syntax" name="Syntax">例</h2>
-
-<h3 id="Matching_a_single_class" name="Matching_a_single_class">単一のクラスとマッチさせる</h3>
-
-<p>単一の指定されたクラスを含む要素を探すには、 <code>getElementsByClassName()</code> を呼び出す際にそのクラス名を指定するだけです。</p>
-
-<pre class="brush: js notranslate">element.getElementsByClassName('test');</pre>
-
-<p>この例は <code>main</code> の <code>id</code> を持つ要素の子孫の中で、<code>test</code> クラスをもつ全要素を見つけます。</p>
-
-<pre class="brush: js notranslate">document.getElementById('main').getElementsByClassName('test');</pre>
-
-<h3 id="Matching_multiple_classes" name="Matching_multiple_classes">複数のクラスとマッチさせる</h3>
-
-<p><code>red</code> と <code>test</code> 両方のクラスを含んだ要素を見つけます。</p>
-
-<pre class="brush: js notranslate">element.getElementsByClassName('red test');</pre>
-
-<h3 id="Examining_the_results" name="Examining_the_results">結果を調査する</h3>
-
-<p>標準の配列構文や、<code>HTMLCollection</code> の {{domxref("HTMLCollection.item", "item()")}} メソッドを使うことで、返されたコレクションの要素を調査することができます。しかし、<strong><u>次の例はうまく動作しないでしょう</u></strong>。<code>colorbox</code> クラスを外した際に、<code>matches</code> がすぐに変更されてしまうからです。</p>
-
-<pre class="brush: js notranslate">var matches = element.getElementsByClassName('colorbox');
-
-for (var i=0; i&lt;matches.length; i++) {
- matches[i].classList.remove('colorbox');
- matches.item(i).classList.add('hueframe');
-}
-</pre>
-
-<p>別の手段を使いましょう。例えば、</p>
-
-<pre class="brush: js notranslate">var matches = element.getElementsByClassName('colorbox');
-
-while (matches.length &gt; 0) {
- matches.item(0).classList.add('hueframe');
- matches[0].classList.remove('colorbox');
-}</pre>
-
-<p>このコードは、<code>"colorbox"</code> クラスを持つ子孫要素を見つけ、<code>item(0)</code>を呼び出して <code>"hueframe"</code> クラスを追加し、(配列表記で) <code>"colorbox"</code> を削除します。その後、(もし残っていれば)別の要素が <code>item(0)</code> になります。</p>
-
-<h3 id="Filtering_the_results_using_array_methods" name="Filtering_the_results_using_array_methods">Arrayメソッドで結果を抽出する</h3>
-
-<p>このメソッドの戻り値を <code>this</code> 値として {{jsxref("Array.prototype")}} メソッドに与えることで、任意の {{ domxref("HTMLCollection") }} で <code>Array</code> メソッドを使うことができます。次の例では <code>test</code> クラスを持つすべての {{HTMLElement("div")}} 要素を見つけられます。</p>
-
-<pre class="brush: js notranslate">var testElements = document.getElementsByClassName('test');
-var testDivs = Array.prototype.filter.call(testElements, function(testElement){
- return testElement.nodeName === 'DIV';
-});</pre>
-
-<h2 id="Specifications" name="Specifications">仕様</h2>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th scope="col">仕様</th>
- <th scope="col">ステータス</th>
- <th scope="col">コメント</th>
- </tr>
- <tr>
- <td>{{SpecName('DOM WHATWG', '#dom-element-getelementsbyclassname', 'Element.getElementsByClassName()')}}</td>
- <td>{{Spec2('DOM WHATWG')}}</td>
- <td>初期定義</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat("api.Element.getElementsByClassName")}}</p>
diff --git a/files/ja/web/api/element/getelementsbyclassname/index.md b/files/ja/web/api/element/getelementsbyclassname/index.md
new file mode 100644
index 0000000000..1b69097ee3
--- /dev/null
+++ b/files/ja/web/api/element/getelementsbyclassname/index.md
@@ -0,0 +1,110 @@
+---
+title: Element.getElementsByClassName()
+slug: Web/API/Element/getElementsByClassName
+tags:
+ - API
+ - クラス
+ - Element
+ - メソッド
+ - リファレンス
+ - getElementsByClassName
+browser-compat: api.Element.getElementsByClassName
+translation_of: Web/API/Element/getElementsByClassName
+---
+{{APIRef("DOM")}}
+
+{{domxref("Element")}} の **`getElementsByClassName()`** メソッドは、引数で与えられたクラス名を含むすべての子要素を、生きた {{domxref("HTMLCollection")}} で返します。 
+
+{{domxref("Document.getElementsByClassName", "getElementsByClassName()")}} メソッドはこのメソッドとほぼ同様に動作しますが、 {{domxref("Document")}} 全体に働きます。特定された文書ルート要素の子孫のうち、与えられたクラス名に合う複数の要素を返します。
+
+## 構文
+
+```js
+var elements = element.getElementsByClassName(names);
+```
+
+### 引数
+
+- `names`
+ - : 一致させる一つ以上のクラス名を表す {{domxref("DOMString")}} で、クラス名は空白区切りで指定できます。
+
+### 返値
+
+{{domxref("HTMLCollection")}} で、 `names` で指定したすべてのクラスを持つすべての要素のライブで更新されるリストです。
+
+## 使用上の注意
+
+この関数が返すコレクションは常に*生きています*。つまり、この関数を呼び出された要素をルートとする DOM ツリーの現在の状態が常に反映されています。サブツリー上で `names` に一致する新しい要素が追加された場合は、直ちにこのコレクションに追加されます。同様に、サブツリー上にある `names` に一致しなかった要素が一致するよう変更された場合も、すぐにこのコレクションに現れます。
+
+逆もしかりです。 `names` に一致しなくなったりツリーから外された要素は、すぐにコレクションから除外されます。
+
+> **Note:** クラス名は[後方互換モード](/ja/docs/Web/HTML/Quirks_Mode_and_Standards_Mode)では大文字・小文字が区別されず、それ以外では区別されます。
+
+## 例
+
+### 単一のクラスと一致させる
+
+単一の指定されたクラスを含む要素を探すには、 `getElementsByClassName()` を呼び出す際にそのクラス名を指定するだけです。
+
+```js
+element.getElementsByClassName('test');
+```
+
+この例は `main` の `id` を持つ要素の子孫の中で、`test` クラスをもつ全要素を見つけます。
+
+```js
+document.getElementById('main').getElementsByClassName('test');
+```
+
+### 複数のクラスと一致させる
+
+`red` と `test` 両方のクラスを含んだ要素を見つけます。
+
+```js
+element.getElementsByClassName('red test');
+```
+
+### 結果を調査する
+
+標準の配列構文や、`HTMLCollection` の {{domxref("HTMLCollection.item", "item()")}} メソッドを使うことで、返されたコレクションの要素を調査することができます。しかし、次の例はうまく動作しないでしょう。`colorbox` クラスを外した際に、`matches` がすぐに変更されてしまうからです。
+
+```js
+var matches = element.getElementsByClassName('colorbox');
+
+for (var i=0; i<matches.length; i++) {
+ matches[i].classList.remove('colorbox');
+ matches.item(i).classList.add('hueframe');
+}
+```
+
+別の手段を使いましょう。例えば、
+
+```js
+var matches = element.getElementsByClassName('colorbox');
+
+while (matches.length > 0) {
+ matches.item(0).classList.add('hueframe');
+ matches[0].classList.remove('colorbox');
+}
+```
+
+このコードは、`"colorbox"` クラスを持つ子孫要素を見つけ、`item(0)`を呼び出して `"hueframe"` クラスを追加し、(配列記法で) `"colorbox"` を削除します。その後、(もし残っていれば)別の要素が `item(0)` になります。
+
+### Array メソッドで結果を抽出する
+
+このメソッドの戻り値を `this` 値として {{jsxref("Array.prototype")}} メソッドに与えることで、任意の {{ domxref("HTMLCollection") }} で `Array` メソッドを使うことができます。次の例では `test` クラスを持つすべての {{HTMLElement("div")}} 要素を見つけられます。
+
+```js
+var testElements = document.getElementsByClassName('test');
+var testDivs = Array.prototype.filter.call(testElements, function(testElement) {
+ return testElement.nodeName === 'DIV';
+});
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
diff --git a/files/ja/web/api/element/getelementsbytagname/index.html b/files/ja/web/api/element/getelementsbytagname/index.html
deleted file mode 100644
index 248bf36639..0000000000
--- a/files/ja/web/api/element/getelementsbytagname/index.html
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: element.getElementsByTagName
-slug: Web/API/Element/getElementsByTagName
-tags:
- - DOM
- - Gecko
-translation_of: Web/API/Element/getElementsByTagName
----
-<p>{{ ApiRef() }}</p>
-
-<h3 id=".E6.A6.82.E8.A6.81" name=".E6.A6.82.E8.A6.81">概要</h3>
-
-<p>指定された <a href="/ja/DOM/element.tagName">タグ名</a> による要素のリストを返します。指定された要素以下のサブツリーが検索対象となり、その要素自体は除外されます。</p>
-
-<h3 id=".E6.A7.8B.E6.96.87" name=".E6.A7.8B.E6.96.87">構文</h3>
-
-<pre class="eval"><em>elements</em> = <em>element</em>.getElementsByTagName(<em>tagName</em>)
-</pre>
-
-<ul>
- <li><code>elements</code> は見つかった要素の「生」の <code>NodeList</code> で、サブツリー内に出現した順番になります。</li>
- <li><code>element</code> は検索を開始する要素です。この要素の子孫要素のみが検索に含まれ、この要素自体は検索対象とならないことに注意してください。</li>
- <li><code>tagName</code> は検索条件とするタグ名です。特別な文字列 <code>"*"</code> はすべての要素を表します。</li>
-</ul>
-
-<div class="note">
-<p>Firefox 2 (Gecko 1.8.1) およびそれ以前では、タグ名に名前空間接頭辞が付いた要素がサブツリーに含まれていた場合、このメソッドは正しく動作しません (詳しくは {{ Bug(206053) }} を参照してください)。</p>
-
-<p>複数の名前空間を持ったドキュメントを扱う際は {{ Domxref("element.getElementsByTagNameNS") }} を使うことを推奨します。</p>
-</div>
-
-<h3 id=".E4.BE.8B" name=".E4.BE.8B">例</h3>
-
-<pre class="brush: js">// テーブル内のセルの数だけ反復処理します
-var table = document.getElementById("forecast-table");
-var cells = table.getElementsByTagName("td");
-for (var i = 0; i &lt; cells.length; i++) {
- status = cells[i].getAttribute("status");
- if ( status == "open") {
- // データを取得します
- }
-}
-</pre>
-
-<h3 id=".E6.B3.A8.E6.84.8F.E7.82.B9" name=".E6.B3.A8.E6.84.8F.E7.82.B9">注意点</h3>
-
-<p><code>element.getElementsByTagName</code> は、検索対象が指定された要素の子孫要素に限られるという点を除けば、<a href="/ja/DOM/document.getElementsByTagName">document.getElementsByTagName</a> と似ています。</p>
-
-<h3 id=".E4.BB.95.E6.A7.98.E6.9B.B8" name=".E4.BB.95.E6.A7.98.E6.9B.B8">仕様書</h3>
-
-<p><a class="external" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1938918D">DOM Level 2 Core: Element.getElementsByTagName </a></p>
-
-<div class="noinclude"> </div>
-
-<p>{{ languages( { "en": "en/DOM/element.getElementsByTagName", "es": "es/DOM/element.getElementsByTagName", "fr": "fr/DOM/element.getElementsByTagName", "pl": "pl/DOM/element.getElementsByTagName" } ) }}</p>
diff --git a/files/ja/web/api/element/getelementsbytagname/index.md b/files/ja/web/api/element/getelementsbytagname/index.md
new file mode 100644
index 0000000000..5164678956
--- /dev/null
+++ b/files/ja/web/api/element/getelementsbytagname/index.md
@@ -0,0 +1,54 @@
+---
+title: Element.getElementsByTagName()
+slug: Web/API/Element/getElementsByTagName
+tags:
+ - API
+ - DOM
+ - Element
+ - メソッド
+ - リファレンス
+browser-compat: api.Element.getElementsByTagName
+translation_of: Web/API/Element/getElementsByTagName
+---
+{{ APIRef("DOM") }}
+
+**`Element.getElementsByTagName()`** メソッドは、生きた {{domxref("HTMLCollection")}} で指定された[タグ名](/ja/docs/Web/API/Element/tagName)を持つ要素を返します。
+
+この要素のすべての子孫が検索されますが、要素そのものは検索されません。返されるリストは*生きており*、 DOM ツリーとともに自動的に更新されます。したがって、同じ要素と引数で `Element.getElementsByTagName()` を繰り返し呼び出す必要はなく、呼び出しの間に DOM が変化しても大丈夫です。
+
+HTML 文書内の HTML 要素に対して呼び出された場合、 `getElementsByTagName` は引数を小文字に変換してから検索を行います。これは、HTML 文書内のキャメルケースの SVG 要素(例えば [`<linearGradient>`](/ja/docs/Web/SVG/Element/linearGradient))と照合しようとする場合には望ましくありません。代わりに、 {{ domxref("Element.getElementsByTagNameNS()") }} を使ってください。この場合、タグ名の大文字と小文字は区別されます。
+
+`Element.getElementsByTagName` は {{domxref("Document.getElementsByTagName()")}} に似ていますが、指定した要素の子孫の要素のみを検索する点が異なります。
+
+## 構文
+
+```js
+elements = element.getElementsByTagName(tagName)
+```
+
+- `elements` は*生きた* {{domxref("HTMLCollection")}} で、タグ名が一致する要素が出現順で入ります。要素が見つかアなかった場合は `HTMLCollection` は空になります。
+- `element` は検索を始める要素です。この要素の子孫のみが含まれ、この要素自身は含まれません。
+- `tagName` は検索する修飾名です。特別な文字列 `"*"` はすべての要素を表します。 XHTML との互換性のため、小文字を使用してください。
+
+## 例
+
+```js
+// テーブル内のセルの数だけ反復処理します
+const table = document.getElementById('forecast-table');
+const cells = table.getElementsByTagName('td');
+
+for (let cell of cells) {
+ let status = cell.getAttribute('data-status');
+ if (status === 'open') {
+ // データを取得
+ }
+}
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
diff --git a/files/ja/web/api/element/getelementsbytagnamens/index.html b/files/ja/web/api/element/getelementsbytagnamens/index.html
deleted file mode 100644
index f0344fd357..0000000000
--- a/files/ja/web/api/element/getelementsbytagnamens/index.html
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: element.getElementsByTagNameNS
-slug: Web/API/Element/getElementsByTagNameNS
-tags:
- - DOM
- - Gecko
-translation_of: Web/API/Element/getElementsByTagNameNS
----
-<p>{{ ApiRef() }}</p>
-
-<h3 id=".E6.A6.82.E8.A6.81" name=".E6.A6.82.E8.A6.81">概要</h3>
-
-<p>与えられた名前空間に属し、与えられたタグの名前を持つ要素のリストを返します。</p>
-
-<h3 id=".E6.A7.8B.E6.96.87" name=".E6.A7.8B.E6.96.87">構文</h3>
-
-<pre class="eval"><em>elements</em> =<em> element</em>.getElementsByTagNameNS(<em>namespaceURI</em>,<em>localName</em>)
-</pre>
-
-<ul>
- <li><code>elements</code> は見付かった要素のツリーに出現した順に生きた <code>NodeList</code> です。</li>
- <li><code>element</code> は検索を始める要素です。この要素の子孫のみが検索対象になり、そのノード自身は対象になりません。</li>
- <li><code>namespaceURI</code> は検索される要素の名前空間 URI です(<code><a href="/ja/DOM/element.namespaceURI">element.namespaceURI</a></code> を参照)。例えば、XHTML 要素を検索する必要があるなら、XHTML の名前空間 URI <code><span class="nowiki">http://www.w3.org/1999/xhtml</span></code> を使ってください。</li>
- <li><code>localName</code> は探す要素のローカル名か全ての要素にマッチする特別な値 <code>"*"</code> のどちらかです(<code><a href="/ja/DOM/element.localName">element.localName</a></code> 参照)。</li>
-</ul>
-
-<h3 id=".E4.BE.8B" name=".E4.BE.8B">例</h3>
-
-<pre class="brush: js">// XHTML 文書の table の多くのセルの配列をチェック。
-var table = document.getElementById("forecast-table");
-var cells = table.getElementsByTagNameNS("http://www.w3.org/1999/xhtml", "td");
-for (var i = 0; i &lt; cells.length; i++) {
- axis = cells[i].getAttribute("axis");
- if ( axis == "year") {
- // データを取得
- }
-}
-</pre>
-
-<h3 id=".E6.B3.A8.E6.84.8F" name=".E6.B3.A8.E6.84.8F">注意</h3>
-
-<p><code>element.getElementsByTagNameNS</code> は {{ Domxref("document.getElementsByTagNameNS") }} に似ていますが、指定された要素の祖先に限定されるかが異なります。</p>
-
-<h3 id=".E4.BB.95.E6.A7.98" name=".E4.BB.95.E6.A7.98">仕様</h3>
-
-<p><a class="external" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-A6C90942">DOM Level 2 Core: Element.getElementsByTagNameNS</a></p>
-
-<div class="noinclude"> </div>
-
-<p>{{ languages( { "en": "en/DOM/element.getElementsByTagNameNS", "fr": "fr/DOM/element.getElementsByTagNameNS", "pl": "pl/DOM/element.getElementsByTagNameNS" } ) }}</p>
diff --git a/files/ja/web/api/element/getelementsbytagnamens/index.md b/files/ja/web/api/element/getelementsbytagnamens/index.md
new file mode 100644
index 0000000000..982a51bb6b
--- /dev/null
+++ b/files/ja/web/api/element/getelementsbytagnamens/index.md
@@ -0,0 +1,49 @@
+---
+title: Element.getElementsByTagNameNS()
+slug: Web/API/Element/getElementsByTagNameNS
+tags:
+ - API
+ - DOM
+ - Element
+ - メソッド
+ - リファレンス
+browser-compat: api.Element.getElementsByTagNameNS
+translation_of: Web/API/Element/getElementsByTagNameNS
+---
+{{APIRef("DOM")}}
+
+**`Element.getElementsByTagNameNS()`** メソッドは、指定された名前空間に属する、指定されたタグ名を持つ要素の {{domxref("HTMLCollection")}} をライブで返します。これは {{Domxref("Document.getElementsByTagNameNS")}} に似ていますが、検索対象が指定された要素の子孫に限定される点が異なります。
+
+## 構文
+
+```js
+elements = element.getElementsByTagNameNS(namespaceURI, localName)
+```
+
+- `elements` は生きた {{domxref("HTMLCollection")}} で、ツリー内で見つかった要素を出現順に保持します。
+- `element` は検索を開始する要素です。なお、この要素の子孫は含まれますが、このノード自体は含まれません。
+- `namespaceURI` は検索する要素の名前空間 URI です({{domxref("Element.namespaceURI")}} および {{domxref("Attr.namespaceURI")}} を参照してください)。例えば、 XHTML 要素を検索する場合は、 XHTML の名前空間 URI である `http://www.w3.org/1999/xhtml` を使用してください。
+- `localName` は検索する要素のローカル名、またはすべての要素に一致する特殊な値 `"*"` です({{domxref("Element.localName")}} および {{domxref("Attr.localName")}} を参照)。
+
+## 例
+
+```js
+// XHTML 文書の table の多くのセルの配列をチェック。
+var table = document.getElementById("forecast-table");
+var cells = table.getElementsByTagNameNS("http://www.w3.org/1999/xhtml", "td");
+
+for (var i = 0; i < cells.length; i++) {
+ var axis = cells[i].getAttribute("axis");
+ if (axis == "year") {
+ // データを取得
+ }
+}
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
diff --git a/files/ja/web/api/element/id/index.html b/files/ja/web/api/element/id/index.html
deleted file mode 100644
index 46cf1c1a9e..0000000000
--- a/files/ja/web/api/element/id/index.html
+++ /dev/null
@@ -1,57 +0,0 @@
----
-title: element.id
-slug: Web/API/Element/id
-tags:
- - DOM
- - Gecko
-translation_of: Web/API/Element/id
----
-<div>{{ApiRef}}</div>
-
-<h2 id="Summary" name="Summary">概要</h2>
-
-<p>要素の 識別子 (identifier) を取得 / 設定します。</p>
-
-<h2 id="Syntax" name="Syntax">構文</h2>
-
-<pre class="syntaxbox"><var>idStr</var> =<em>element</em>.id; // 取得
-<em>element</em>.id = <var>idStr</var>; // 設定
-</pre>
-
-<h2 id="Notes" name="Notes">注意</h2>
-
-<p>ID は文書内でユニークでなくてはならず、{{domxref("document.getElementById")}} を使って要素を取り出すために使われることがあります。仮に文法を無視して同一 <code>id</code> の要素が文書内に複数存在する場合、このメソッドは最初の要素を取得します。</p>
-
-<p>document によっては(特に <a href="/ja/docs/Web/HTML">HTML</a> 、 <a href="/ja/docs/XUL">XUL</a> 、<a href="/ja/docs/SVG">SVG</a>)、要素の <code>id</code> は次のような要素の属性として指定することができます: <code>&lt;div id="part_3"&gt;</code>.</p>
-
-<p>但しカスタム XML 文書に於いては、<code>id</code> 属性の型を DOCTYPE で定められたとおりに正しく指定しなければなりません。詳細については『<a href="http://blog.bitflux.ch/wiki/GetElementById_Pitfalls">getElementById Pitfalls (getElementById の落とし穴)</a>』をご覧下さい。</p>
-
-<p><code>id</code> 属性は、<a href="/ja/docs/CSS">スタイルシート</a>でスタイルを適用するために要素を参照する要素でも用いられます。スタイルシート内から特定の要素を参照するには、HTML に指定した <code>id</code> 属性値の先頭に <code>#</code> を付けます。</p>
-
-<pre class="brush:css">#thisID {
- background: darkblue;
- color; ghostwhite;
-}</pre>
-
-<p><code>id</code> 属性はケースセンシティブ……即ち、大文字と小文字を区別するという点に注意して下さい。つまり、 "<code>thisID</code>" と "<code>ThisID</code>" は別の <code>id</code> として扱われ、それぞれ別の要素を指し示す識別子となります (参照 : <a href="/ja/docs/Case_Sensitivity_in_class_and_id_Names">class 属性 / id 属性 / name 属性はケースセンシティブである</a>)</p>
-
-<h2 id="Specification" name="Specification">仕様</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">策定状況</th>
- <th scope="col">コメント</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('DOM2 HTML', 'html.html#ID-63534901', 'id')}}</td>
- <td>{{Spec2('DOM2 HTML')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<p> </p>
diff --git a/files/ja/web/api/element/id/index.md b/files/ja/web/api/element/id/index.md
new file mode 100644
index 0000000000..9cd313c8ca
--- /dev/null
+++ b/files/ja/web/api/element/id/index.md
@@ -0,0 +1,46 @@
+---
+title: Element.id
+slug: Web/API/Element/id
+tags:
+ - API
+ - DOM
+ - Element
+ - プロパティ
+ - リファレンス
+browser-compat: api.Element.id
+translation_of: Web/API/Element/id
+---
+{{ ApiRef("DOM") }}
+
+**`id`** は {{domxref("Element")}} インターフェイスのプロパティで、グローバル属性の [**`id`**](/ja/docs/Web/HTML/Global_attributes/id) を反映した要素の識別子を表します。
+
+`id` の値が空文字列でない場合は、文書内で固有でなければなりません。
+
+`id` はよく {{domxref("Document.getElementById()", "getElementById()")}} で特定の要素を受け取るために使用します。他の一般的な用途としては、要素の [ID をセレクターとして](/ja/docs/Web/CSS/ID_selectors) [CSS](/ja/docs/Web/CSS) で文書をスタイル付けするために使用されます。
+
+> **Note:** 識別子は大文字小文字の区別がありますが、大文字小文字の区別だけで見分ける ID を作ることは避けてください。
+
+
+## 構文
+
+```js
+var idStr = element.id; // id を取得
+```
+
+```js
+element.id = 'newid'; // id を設定
+```
+
+- `idStr` はこの要素の識別子です。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- DOM の [**id**](/ja/docs/Web/HTML/Global_attributes/id) グローバル属性
diff --git a/files/ja/web/api/element/index.html b/files/ja/web/api/element/index.html
deleted file mode 100644
index 6bece2f11f..0000000000
--- a/files/ja/web/api/element/index.html
+++ /dev/null
@@ -1,464 +0,0 @@
----
-title: Element
-slug: Web/API/Element
-tags:
- - API
- - DOM
- - DOM Reference
- - Element
- - Interface
- - Reference
- - Web API
-browser-compat: api.Element
-translation_of: Web/API/Element
----
-<div>{{APIRef("DOM")}}</div>
-
-<p><span class="seoSummary"><strong><code>Element</code></strong> は {{DOMxRef("Document")}} の中にあるすべての要素オブジェクト (すなわち、要素を表現するオブジェクト) が継承する、もっとも一般的な基底クラスです。このインターフェイスは、すべての種類の要素に共通するメソッドとプロパティを記述するだけのものです。多くの具体的なクラスが <code>Element</code> を継承します。</span>例えば HTML 要素には {{DOMxRef("HTMLElement")}} インターフェイス、SVG 要素には {{DOMxRef("SVGElement")}} インターフェイスなど。ほとんどの機能は、クラスの階層を下りると具体化していきます。</p>
-
-<p>XUL の <code>XULElement</code> インターフェイスのようなウェブプラットフォームの枠外の言語もまた、<code>Element</code> インターフェイスを通じて要素を実装しています。</p>
-
-<p>{{InheritanceDiagram}}</p>
-
-<h2 id="Properties">プロパティ</h2>
-
-<p><em><code>Element</code> は、親インターフェスである {{DOMxRef("Node")}}、およびその親インターフェイスである {{DOMxRef("EventTarget")}} からプロパティを継承します。</em></p>
-
-<dl>
- <dt>{{DOMxRef("Element.assignedSlot")}}{{readonlyInline}}</dt>
- <dd>このノードが挿入された {{htmlelement("slot")}} を表す {{DOMxRef("HTMLSlotElement")}} を返します。</dd>
- <dt>{{DOMxRef("Element.attributes")}} {{readOnlyInline}}</dt>
- <dd>対応する HTML 要素に関連したすべての属性のリストである {{DOMxRef("NamedNodeMap")}} を返します。</dd>
- <dt>{{domxref("Element.childElementCount")}} {{readonlyInline}}</dt>
- <dd>この要素の子要素の数を返します。</dd>
- <dt>{{domxref("Element.children")}} {{readonlyInline}}</dt>
- <dd>この要素の子要素を返します。</dd>
- <dt>{{DOMxRef("Element.classList")}} {{readOnlyInline}}</dt>
- <dd>class 属性のトークンリストを含む {{DOMxRef("DOMTokenList")}} を返します。</dd>
- <dt>{{DOMxRef("Element.className")}}</dt>
- <dd>{{DOMxRef("DOMString")}} 型であり、要素のクラスを表します。</dd>
- <dt>{{DOMxRef("Element.clientHeight")}} {{readOnlyInline}}</dt>
- <dd>要素の内部の高さを表す {{jsxref("Number")}} を返します。</dd>
- <dt>{{DOMxRef("Element.clientLeft")}} {{readOnlyInline}}</dt>
- <dd>要素の左境界の幅を表す {{jsxref("Number")}} を返します。</dd>
- <dt>{{DOMxRef("Element.clientTop")}} {{readOnlyInline}}</dt>
- <dd>要素の上境界の幅を表す {{jsxref("Number")}} を返します。</dd>
- <dt>{{DOMxRef("Element.clientWidth")}} {{readOnlyInline}}</dt>
- <dd>要素の内部の幅を表す {{jsxref("Number")}} を返します。</dd>
- <dt>{{domxref("Element.firstElementChild")}} {{readonlyInline}}</dt>
- <dd>アクセシビリティ向けに公開されたラベルを含む {{DOMxRef("DOMString")}} を返します。</dd>
- <dt>{{DOMxRef("Element.id")}}</dt>
- <dd>{{DOMxRef("DOMString")}} 型であり、要素の id を表します。</dd>
- <dt>{{DOMxRef("Element.innerHTML")}}</dt>
- <dd>{{DOMxRef("DOMString")}} 型であり、要素内容のマークアップを表します。</dd>
- <dt>{{domxref("Element.lastElementChild")}} {{readonlyInline}}</dt>
- <dd>Returns the last child element of this element.</dd>
- <dt>{{DOMxRef("Element.localName")}} {{readOnlyInline}}</dt>
- <dd>要素の修飾名のローカル部分を表す {{DOMxRef("DOMString")}} です。</dd>
- <dt>{{DOMxRef("Element.namespaceURI")}} {{readonlyInline}}</dt>
- <dd>要素の名前空間の URI。名前空間がない場合は <code>null</code> になります。
- <div class="note">
- <p><strong>注:</strong> Firefox 3.5 および以前のバージョンでは、HTML 要素の名前空間はありません。以降のバージョンでは、HTML 要素は HTML ツリーおよび XML ツリーで <code><a class="linkification-ext external" href="https://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a></code> 名前空間内に存在します。</p>
- </div>
- </dd>
- <dt>{{DOMxRef("Element.nextElementSibling")}} {{readOnlyInline}}</dt>
- <dd>{{DOMxRef("Element")}} 型であり、ツリー上で自身の直後の要素 (弟) を表します。兄弟ノードがなければ <code>null</code>。</dd>
- <dt>{{DOMxRef("Element.outerHTML")}}</dt>
- <dd>{{DOMxRef("DOMString")}} 型であり、その要素を内容に含むマークアップを表します。設定に用いる場合、与えられた文字列からパースされたノードでその要素を置換します。</dd>
- <dt>{{DOMxRef("Element.part")}}</dt>
- <dd>要素のパート識別子 (すなわち、 <code>part</code> 属性を使用して設定されるもの) が、 {{domxref("DOMTokenList")}} として返されます。</dd>
- <dt>{{DOMxRef("Element.prefix")}} {{readOnlyInline}}</dt>
- <dd>要素の名前空間接頭辞を表す {{DOMxRef("DOMString")}}。接頭辞が指定されていない場合は <code>null</code>。</dd>
- <dt>{{DOMxRef("Element.previousElementSibling")}} {{readOnlyInline}}</dt>
- <dd>{{DOMxRef("Element")}} 型であり、ツリー上で自身の直前の要素 (兄) を表します。兄弟ノードが無ければ <code>null</code>。</dd>
- <dt>{{DOMxRef("Element.scrollHeight")}} {{readOnlyInline}}</dt>
- <dd>要素のスクロールビューの高さを表す {{jsxref("Number")}} を返します。</dd>
- <dt>{{DOMxRef("Element.scrollLeft")}}</dt>
- <dd>{{jsxref("Number")}} 型であり、要素の左スクロールオフセット値を表します。</dd>
- <dt>{{DOMxRef("Element.scrollLeftMax")}} {{Non-standard_Inline}} {{readOnlyInline}}</dt>
- <dd>要素で可能な左スクロールオフセットの最大値を表す {{jsxref("Number")}} を返します。</dd>
- <dt>{{DOMxRef("Element.scrollTop")}}</dt>
- <dd>文書の上端が垂直方向にスクロールされた量をピクセル数で表す {{jsxref("Number")}} です。</dd>
- <dt>{{DOMxRef("Element.scrollTopMax")}} {{Non-standard_Inline}} {{readOnlyInline}}</dt>
- <dd>要素で可能な上スクロールオフセットの最大値を表す {{jsxref("Number")}} を返します。</dd>
- <dt>{{DOMxRef("Element.scrollWidth")}} {{readOnlyInline}}</dt>
- <dd>要素のスクロールビュー幅を表す {{jsxref("Number")}} を返します。</dd>
- <dt>{{DOMxRef("Element.shadowRoot")}}{{readOnlyInline}}</dt>
- <dd>要素が所持しているオープンモードの Shadow Root、あるいはオープンモードの Shadow Root がない場合は null を返します。</dd>
- <dt>{{DOMxRef("Element.openOrClosedShadowRoot")}} {{Non-standard_Inline}}{{readOnlyInline}}</dt>
- <dd>オープン・クローズに関係なく、要素が所持している Shadow Root を返します。<strong><a href="/ja/docs/Mozilla/Add-ons/WebExtensions">WebExtensions</a> に限り使用できます。</strong></dd>
- <dt>{{DOMxRef("Element.slot")}} {{Experimental_Inline}}</dt>
- <dd>要素が挿入されている shadow DOM スロットの名前を返します。</dd>
- <dt>{{DOMxRef("Element.tagName")}} {{readOnlyInline}}</dt>
- <dd>要素のタグ名を {{jsxref("String")}} で返します。</dd>
-</dl>
-
-<h3 id="Properties_included_from_Aria">ARIA から導入されたプロパティ</h3>
-
-<p><em><code>Element</code> インターフェイスは <code>ARIAMixin</code> ミックスインで定義されている以下のプロパティを持っています。</em></p>
-
-<dl>
- <dt>{{domxref("Element.ariaAtomic")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-atomic</code> 属性を反映し、 <code>aria-relevant</code> 属性で定義された変更通知に基づいて、支援技術が変更された領域のすべてを提示するか、一部のみを提示するかを示します。</dd>
- <dt>{{domxref("Element.ariaAutoComplete")}}</dt>
- <dd>{{domxref("DOMString")}} で、 <code>aria-autocomplete</code> 属性を反映し、コンボボックス、サーチボックス、テキストボックスでテキストを入力する際に、ユーザーの意図した値の 1 つ以上の予測を表示するかどうか、予測が行われた場合にはどのように表示するかを指定します。</dd>
- <dt>{{domxref("Element.ariaBusy")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-busy</code> 属性を反映し、要素が修正されているかどうかを示します。支援技術では、修正が完了するまで待ってからユーザーに公開したい場合があります。</dd>
- <dt>{{domxref("Element.ariaChecked")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-checked</code> 属性を反映し、チェックボックス、ラジオボタン、その他のチェック状態を持つウィジェットの現在の「チェック」状態を示します。</dd>
- <dt>{{domxref("Element.ariaColCount")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-colcount</code> 属性を反映し、テーブル、グリッド、ツリーグリッドの列数を定義します。</dd>
- <dt>{{domxref("Element.ariaColIndex")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-colindex</code> 属性を反映し、テーブル、グリッド、ツリーグリッド内の列の総数に対する要素の列インデックスまたは位置を定義します。</dd>
- <dt>{{domxref("Element.ariaColIndexText")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-colindextext</code> 属性を反映し、 aria-colindex の代替となる人間が読めるテキストを定義します。</dd>
- <dt>{{domxref("Element.ariaColSpan")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-colspan</code> 属性を反映し、テーブル、グリッド、ツリーグリッド内のセルまたはグリッドセルがカバーする列数を定義します。</dd>
- <dt>{{domxref("Element.ariaCurrent")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-current</code> 属性を反映し、コンテナーまたは関連要素のセット内の現在の項目を表す要素を示します。</dd>
- <dt>{{domxref("Element.ariaDescription")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-description</code> 属性を反映し、現在の要素を説明または注釈する文字列値を定義します。</dd>
- <dt>{{domxref("Element.ariaDisabled")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-disabled</code> 属性を反映し、この要素が知覚可能であるが無効であるため、編集やその他の操作ができないことを示します。</dd>
- <dt>{{domxref("Element.ariaExpanded")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-expanded</code> 属性を反映し、この要素が所有または制御するグループ化要素が展開されているか畳まれているかを示します。</dd>
- <dt>{{domxref("Element.ariaHasPopup")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-haspopup</code> 属性を反映し、この要素によって引き起こされるメニューやダイアログのような対話型のポップアップ要素の有無と種類を示します。</dd>
- <dt>{{domxref("Element.ariaHidden")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-hidden</code> 属性を反映し、この要素がアクセシビリティ API に公開されているかどうかを示します。</dd>
- <dt>{{domxref("Element.ariaKeyShortcuts")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-keyshortcuts</code> 属性を反映し、要素を活性化したりフォーカスを与えたりするために作者が実装したキーボードショートカットを示します。</dd>
- <dt>{{domxref("Element.ariaLabel")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-label</code> 属性を反映し、現在の要素をラベル付けする文字列値を定義します。</dd>
- <dt>{{domxref("Element.ariaLevel")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-level</code> 属性を反映し、構造内の要素の階層レベルを定義します。</dd>
- <dt>{{domxref("Element.ariaLive")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-live</code> 属性を反映し、この要素が更新されること、ユーザーエージェント、支援技術、ユーザーがライブ領域から期待できる更新の種類を記述します。</dd>
- <dt>{{domxref("Element.ariaModal")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-modal</code> 属性を反映し、要素が表示されたときにモーダルであるかどうかを示します。</dd>
- <dt>{{domxref("Element.ariaMultiline")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-multiline</code> 属性を反映し、テキストボックスが複数行の入力を受け入れるか、一行のみを受け入れるかを示します。</dd>
- <dt>{{domxref("Element.ariaMultiSelectable")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-multiselectable</code> 属性を反映し、ユーザーが現在の選択可能な子孫から複数の項目を選択できることを示します。</dd>
- <dt>{{domxref("Element.ariaOrientation")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-orientation</code> 属性を反映し、要素の方向が水平、垂直、または不明/曖昧であることを示す。</dd>
- <dt>{{domxref("Element.ariaPlaceholder")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-placeholder</code> 属性を反映し、コントロールに値がない場合にユーザーのデータ入力を支援するための短いヒントを定義します。</dd>
- <dt>{{domxref("Element.ariaPosInSet")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-posinset</code> 属性を反映し、リストアイテムまたはツリーアイテムの現在のセットにおける要素の数または位置を定義します。</dd>
- <dt>{{domxref("Element.ariaPressed")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-pressed</code> 属性を反映し、トグルボタンの現在の「押された」状態を示します。</dd>
- <dt>{{domxref("Element.ariaReadOnly")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-readonly</code> 属性を反映し、要素が編集不可能であることを示すが、それ以外は操作可能であることを示します。</dd>
- <dt>{{domxref("Element.ariaRelevant")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-relevant</code> 属性を反映し、ライブリージョン内のアクセシビリティツリーが変更された場合に、ユーザエージェントがどのような通知を行うかを示します。これは、 <code>aria-live</code> リージョン内のどのような変更が関連性があり、アナウンスされるべきかを記述するために使用されます。</dd>
- <dt>{{domxref("Element.ariaRequired")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-required</code> 属性を反映し、フォームを送信する前に要素にユーザーの入力が必要であることを示します。</dd>
- <dt>{{domxref("Element.ariaRoleDescription")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-roledescription</code> 属性を反映し、要素の役割について、人間が読める、著者がローカライズした説明を定義します。</dd>
- <dt>{{domxref("Element.ariaRowCount")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-rowcount</code> 属性を反映し、テーブル、グリッド、ツリーグリッドの行の総数を定義します。</dd>
- <dt>{{domxref("Element.ariaRowIndex")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-rowindex</code> 属性を反映し、テーブル、グリッド、ツリーグリッド内の行の総数に対する要素の行インデックスまたは位置を定義します。</dd>
- <dt>{{domxref("Element.ariaRowIndexText")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-rowindextext</code> 属性を反映し、 aria-rowindex の代替となる人間が読めるテキストを定義しています。</dd>
- <dt>{{domxref("Element.ariaRowSpan")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-rowspan</code> 属性を反映し、テーブル、グリッド、ツリーグリッド内のセルまたはグリッドセルがカバーする行数を定義します。</dd>
- <dt>{{domxref("Element.ariaSelected")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-selected</code> 属性を反映し、選択状態を持つ要素の現在の「選択された」状態を示します。</dd>
- <dt>{{domxref("Element.ariaSetSize")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-setsize</code> 属性を反映し、現在のリストアイテムまたはツリーアイテムのセットのアイテム数を定義します。</dd>
- <dt>{{domxref("Element.ariaSort")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-sort</code> 属性を反映し、テーブルやグリッドのアイテムが昇順または降順でソートされるかどうかを示します。</dd>
- <dt>{{domxref("Element.ariaValueMax")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-valueMax</code> 属性を反映し、 range ウィジェットの最大許容値を定義します。</dd>
- <dt>{{domxref("Element.ariaValueMin")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-valueMin</code> 属性を反映し、 range ウィジェットに許容される最小値を定義します。</dd>
- <dt>{{domxref("Element.ariaValueNow")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-valueNow</code> 属性を反映し、 range ウィジェットの現在の値を定義します。</dd>
- <dt>{{domxref("Element.ariaValueText")}}</dt>
- <dd>{{domxref("DOMString")}} で <code>aria-valuetext</code> 属性を反映し、 range ウィジェットの aria-valuenow の代替となる人間が読めるテキストを定義ます。</dd>
-</dl>
-
-<h3 id="Handlers">イベントハンドラー</h3>
-
-<dl>
- <dt>{{domxref("Element.onfullscreenchange")}}</dt>
- <dd>要素が全画面モードに入ったり出たりしたときに送られる {{event("fullscreenchange")}} イベントのイベントハンドラーです。これは期待された遷移が成功したかどうかを監視するために使用することができますが、アプリの実行がバックグラウンドになった場合など、想定外の変化を監視することもできます。</dd>
- <dt>{{domxref("Element.onfullscreenerror")}}</dt>
- <dd>全画面モードへ移行しようとしてエラーが発生したときに送られる {{event("fullscreenerror")}} イベントのイベントハンドラーです。</dd>
-</dl>
-
-<h2 id="Methods">メソッド</h2>
-
-<p><em><code>Element</code> は親である {{DOMxRef("Node")}}、およびその親である {{DOMxRef("EventTarget")}} からメソッドを継承しています。</em></p>
-
-<dl>
- <dt>{{DOMxRef("EventTarget.addEventListener()")}}</dt>
- <dd>要素に特定のイベント型を扱うイベントハンドラーを登録します。</dd>
- <dt>{{DOMxRef("Element.attachShadow()")}}</dt>
- <dd>指定した要素に shadow DOM ツリーを結びつけて、その {{DOMxRef("ShadowRoot")}} への参照を返します。</dd>
- <dt>{{DOMxRef("Element.animate()")}} {{Experimental_Inline}}</dt>
- <dd>要素でアニメーションを作成および実行するためのショートカットメソッドです。作成した Animation オブジェクトのインスタンスを返します。</dd>
- <dt>{{DOMxRef("Element.append()")}}</dt>
- <dd>この要素の最後の子の後に、一連の {{domxref("Node")}} オブジェクトまたは {{domxref("DOMString")}} オブジェクトを挿入します。</dd>
- <dt>{{DOMxRef("Element.closest()")}}</dt>
- <dd>引数に指定したセレクターによって選択される要素がもっとも近い祖先要素 (または当該要素自身) を {{DOMxRef("Element")}} 型で返します。</dd>
- <dt>{{DOMxRef("Element.createShadowRoot()")}} {{Non-standard_Inline}} {{Deprecated_Inline}}</dt>
- <dd>要素で <a href="/ja/docs/Web/Web_Components/Using_shadow_DOM">shadow DOM</a> を作成します。その要素はシャドウホストになります。 {{DOMxRef("ShadowRoot")}} を返します。</dd>
- <dt>{{DOMxRef("Element.computedStyleMap()")}} {{Experimental_Inline}}</dt>
- <dd>{{DOMxRef("CSSStyleDeclaration")}} に代わる、CSS 宣言ブロックを読み取り専用で表現したものを提供する {{DOMxRef("StylePropertyMapReadOnly")}} インターフェイスを返します。</dd>
- <dt>{{DOMxRef("EventTarget.dispatchEvent()")}}</dt>
- <dd>DOM 内のこの (this) ノードにイベントを送ります。そして、イベントをキャンセルしたハンドラーがないかを示す {{jsxref("Boolean")}} を返します。</dd>
- <dt>{{DOMxRef("Element.getAnimations()")}} {{Experimental_Inline}}</dt>
- <dd>要素でアクティブな Animation オブジェクトの配列を返します。</dd>
- <dt>{{DOMxRef("Element.getAttribute()")}}</dt>
- <dd>現在ノードから指定された名前の付いた属性値を取得して、 {{jsxref("Object")}} を返します。</dd>
- <dt>{{DOMxRef("Element.getAttributeNames()")}}</dt>
- <dd>現在の要素の属性名の配列を返します。</dd>
- <dt>{{DOMxRef("Element.getAttributeNode()")}}</dt>
- <dd>現在のノードから、指定された属性のノード表現を取得し、 {{DOMxRef("Attr")}} として返します。</dd>
- <dt>{{DOMxRef("Element.getAttributeNodeNS()")}}</dt>
- <dd>指定された名前と名前空間を持つ属性のノード表現を現在のノードから取得し、それを {{DOMxRef("Attr")}} として返します。</dd>
- <dt>{{DOMxRef("Element.getAttributeNS()")}}</dt>
- <dd>現在ノードから指定された名前と名前空間 (namespase) を持つ属性値を取得して、{{jsxref("Object")}} を返します。</dd>
- <dt>{{DOMxRef("Element.getBoundingClientRect()")}}</dt>
- <dd>要素のサイズと、ビューポートにおける位置を返します。</dd>
- <dt>{{domxref("Element.getBoxQuads()")}} {{experimental_inline}}</dt>
- <dd>{{domxref("DOMQuad")}} オブジェクトのリストを返し、これはノードの CSS フラグメントを表します。</dd>
- <dt>{{DOMxRef("Element.getClientRects()")}}</dt>
- <dd>クライアント (ソフト) 内のテキスト上の個々の行の外接矩形 (bounding rectangle) の集合を返します。</dd>
- <dt>{{DOMxRef("Element.getElementsByClassName()")}}</dt>
- <dd>現在の要素から、引数に指定したクラス名のリストに該当するすべての子孫要素を持つ {{DOMxRef("HTMLCollection")}} を返します。</dd>
- <dt>{{DOMxRef("Element.getElementsByTagName()")}}</dt>
- <dd>現在要素から、特定のタグ名を持つすべての子孫要素の集合を取得した {{DOMxRef("HTMLCollection")}} を返します。</dd>
- <dt>{{DOMxRef("Element.getElementsByTagNameNS()")}}</dt>
- <dd>現在要素から、特定のタグ名と名前空間を持つすべての子孫要素の集合を取得した {{DOMxRef("HTMLCollection")}} を返します。</dd>
- <dt>{{DOMxRef("Element.hasAttribute()")}}</dt>
- <dd>要素が指定された指定された属性を持っているか否かを示す {{jsxref("Boolean")}} を返します。</dd>
- <dt>{{DOMxRef("Element.hasAttributeNS()")}}</dt>
- <dd>要素が指定された名前空間内に指定された属性を持っているか否かを示す {{jsxref("Boolean")}} を返します。</dd>
- <dt>{{DOMxRef("Element.hasAttributes()")}}</dt>
- <dd>要素が現在 1 つ以上の属性をもっているかを示す {{jsxref("Boolean")}} を返します。</dd>
- <dt>{{DOMxRef("Element.hasPointerCapture()")}}</dt>
- <dd>呼び出された要素が、指定されたポインター ID によって識別されるポインターのポインターキャプチャを持っているかどうかを示します。</dd>
- <dt>{{DOMxRef("Element.insertAdjacentElement()")}}</dt>
- <dd>メソッドを実行した要素に対して相対的な指定位置に、要素ノードを挿入します。</dd>
- <dt>{{DOMxRef("Element.insertAdjacentHTML()")}}</dt>
- <dd>テキストを HTML または XML としてパースして、パース結果のノードをツリーの指定した位置に挿入します。</dd>
- <dt>{{DOMxRef("Element.insertAdjacentText()")}}</dt>
- <dd>メソッドを実行した要素に対して相対的な指定位置に、テキストノードを挿入します。</dd>
- <dt>{{DOMxRef("Element.matches()")}}</dt>
- <dd>要素が指定されたセレクター文字列で選択されているか否かを示す {{jsxref("Boolean")}} を返します。</dd>
- <dt>{{DOMxRef("Element.prepend()")}}</dt>
- <dd>この要素の最初の子の前に、一連の {{domxref("Node")}} オブジェクトまたは {{domxref("DOMString")}} オブジェクトを挿入します。</dd>
- <dt>{{DOMxRef("Element.querySelector()")}}</dt>
- <dd>要素に対して、指定したセレクターに一致する最初の {{DOMxRef("Node")}} を返します。</dd>
- <dt>{{DOMxRef("Element.querySelectorAll()")}}</dt>
- <dd>要素に対して、指定したセレクターに一致するノードの {{DOMxRef("NodeList")}} を返します。</dd>
- <dt>{{DOMxRef("Element.releasePointerCapture()")}}</dt>
- <dd>以前に特定の {{DOMxRef("PointerEvent","pointer イベント")}}向けに設定したポインターキャプチャーを解放 (停止) します。</dd>
- <dt>{{DOMxRef("Element.remove()")}}</dt>
- <dd>親要素の子リストから、要素を取り除きます。</dd>
- <dt>{{DOMxRef("Element.removeAttribute()")}}</dt>
- <dd>現在ノードから,指定された名前を持つ属性を取り除きます。</dd>
- <dt>{{DOMxRef("Element.removeAttributeNode()")}}</dt>
- <dd>現在のノードから名前の付いた属性のノード表現を削除します。</dd>
- <dt>{{DOMxRef("Element.removeAttributeNS()")}}</dt>
- <dd>現在ノードから,指定された名前と名前空間を持つ属性を取り除きます。</dd>
- <dt>{{DOMxRef("EventTarget.removeEventListener()")}}</dt>
- <dd>要素からイベントリスナーを取り除きます。</dd>
- <dt>{{DOMxRef("Element.replaceChildren()")}}</dt>
- <dd>{{domxref("Node")}} の既存の子を指定された新しい一連の子に置き換えます。</dd>
- <dt>{{DOMxRef("Element.replaceWith()")}}</dt>
- <dd>親の子リストの要素を、一連の {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトで置き換えます。</dd>
-<dt>{{DOMxRef("Element.requestFullscreen()")}} {{Experimental_Inline}}</dt>
- <dd>要素を全画面表示するよう、ブラウザーへ非同期的に要求します。</dd>
- <dt>{{DOMxRef("Element.requestPointerLock()")}} {{Experimental_Inline}}</dt>
- <dd>指定した要素でポインターをロックするよう、非同期的に要求できます。</dd>
- <dt>{{domxref("Element.scroll()")}}</dt>
- <dd>指定された要素の中で特定の座標のセットへスクロールします。</dd>
- <dt>{{domxref("Element.scrollBy()")}}</dt>
- <dd>指定された量だけ要素をスクロールします。</dd>
- <dt>{{DOMxRef("Element.scrollIntoView()")}} {{Experimental_Inline}}</dt>
- <dd>要素がビューの内側に来るまでページをスクロールします。</dd>
- <dt>{{domxref("Element.scrollTo()")}}</dt>
- <dd>指定された要素の中で特定の座標のセットへスクロールします。</dd>
- <dt>{{DOMxRef("Element.setAttribute()")}}</dt>
- <dd>現在ノードに、指定された名前を持つ属性値を設定します。</dd>
- <dt>{{DOMxRef("Element.setAttributeNode()")}}</dt>
- <dd>現在のノードから指定された属性のノード表現を設定します。</dd>
- <dt>{{DOMxRef("Element.setAttributeNodeNS()")}}</dt>
- <dd>指定された名前と名前空間を持つ属性のノード表現を、現在のノードから設定します。</dd>
- <dt>{{DOMxRef("Element.setAttributeNS()")}}</dt>
- <dd>現在ノードに、指定された名前と名前空間を持つ属性値を設定します。</dd>
- <dt>{{DOMxRef("Element.setCapture()")}} {{Non-standard_Inline}}{{Deprecated_Inline}}</dt>
- <dd>すべてのマウスイベントを要素にリダイレクトし、マウスイベントキャプチャーを開始 (set up) します。</dd>
- <dt>{{DOMxRef("Element.setPointerCapture()")}}</dt>
- <dd>以降の <a href="/ja/docs/Web/API/Pointer_events">pointer イベント</a> のキャプチャー対象とする、特定の要素を指定します。</dd>
- <dt>{{DOMxRef("Element.toggleAttribute()")}}</dt>
- <dd>指定した要素で boolean 型の属性を切り替える、すなわち属性が存在していれば削除、属性が存在していなければ追加します。</dd>
-</dl>
-
-<h2 id="Events">イベント</h2>
-
-<p>これらのイベントを待ち受けするには、 <code>addEventListener()</code> を使用するか、イベントリスナーをこのインターフェイスの <code>on<em>イベント名</em></code> プロパティに代入するかします。</p>
-
-<dl>
- <dt>{{domxref("HTMLDialogElement/cancel_event", "cancel")}}</dt>
- <dd>ユーザーがブラウザーに、現在開いているダイアログを閉じたいと指示したときに {{HTMLElement("dialog")}} に発生します。ブラウザーがこのイベントを発生させる可能性があるのは、例えばユーザーが <kbd>Esc</kbd> キーを押したり、ブラウザーのユーザーインターフェイスの一部である「ダイアログを閉じる」ボタンをクリックしたりした場合です。<br>
- {{domxref("GlobalEventHandlers/oncancel", "oncancel")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/error_event", "error")}}</dt>
- <dd>リソースの読み込みに失敗したか、利用できなかった場合に発生します。例えば、スクリプトに実行エラーがあった場合や、画像が見つからなかった場合、無効であった場合などです。<br>
- {{domxref("GlobalEventHandlers/onerror", "onerror")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/scroll_event", "scroll")}}</dt>
- <dd>文書のビューまたは要素がスクロールしたときに発生します。<br>
- {{DOMxRef("GlobalEventHandlers.onscroll", "onscroll")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/select_event", "select")}}</dt>
- <dd>いくらかのテキストが選択されたときに発生します。<br>
- {{DOMxRef("GlobalEventHandlers.onselect", "onselect")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/show_event", "show")}}</dt>
- <dd>{{domxref("Element/contextmenu_event", "contextmenu")}} イベントが <code><a href="/ja/docs/Web/HTML/Global_attributes/contextmenu">contextmenu</a></code> 属性を持つ要素で発生したか、バブリングで到達した場合に発生します。 {{deprecated_inline}}<br>
- {{DOMxRef("GlobalEventHandlers.onshow", "onshow")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/wheel_event","wheel")}}</dt>
- <dd>ユーザーがポインティングデバイス (普通はマウス) のホイールボタンを回転させたときに発生します。<br>
- {{DOMxRef("GlobalEventHandlers.onwheel", "onwheel")}} プロパティから利用することもできます。</dd>
-</dl>
-
-<h3 id="Clipboard_events">クリップボードイベント</h3>
-
-<dl>
- <dt>{{domxref("Element/copy_event", "copy")}}</dt>
- <dd>ユーザーがブラウザーのユーザーインターフェイスを通して、コピー操作を行ったときに発生します。<br>
- {{domxref("HTMLElement/oncopy", "oncopy")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/cut_event", "cut")}}</dt>
- <dd>ユーザーがブラウザーのユーザーインターフェイスを通して、切り取り操作を行ったときに発生します。<br>
- {{domxref("HTMLElement/oncut", "oncut")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/paste_event", "paste")}}</dt>
- <dd>ユーザーがブラウザーのユーザーインターフェイスを通して、貼り付け操作を行ったときに発生します。<br>
- {{domxref("HTMLElement/onpaste", "onpaste")}} プロパティから利用することもできます。</dd>
-</dl>
-
-<h3 id="Composition_events">構成イベント</h3>
-
-<dl>
- <dt>{{domxref("Element/compositionend_event", "compositionend")}}</dt>
- <dd>{{glossary("input method editor")}} のようなテキスト構成システムで、現在の入力セッションが完了またはキャンセルされたときに発生します。</dd>
- <dt>{{domxref("Element/compositionstart_event", "compositionstart")}}</dt>
- <dd>{{glossary("input method editor")}} のようなテキスト構成システムで、新しい入力セッションを始まったときに発生します。</dd>
- <dt>{{domxref("Element/compositionupdate_event", "compositionupdate")}}</dt>
- <dd>{{glossary("input method editor")}} のようなテキスト構成システムによって制御されている入力セッションのコンテキストに、新しい文字が入力されたときに発生します。</dd>
-</dl>
-
-<h3 id="Focus_events">フォーカスイベント</h3>
-
-<dl>
- <dt>{{domxref("Element/blur_event", "blur")}}</dt>
- <dd>要素がフォーカスを失ったときに発生します。<br>
- {{domxref("GlobalEventHandlers/onblur", "onblur")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/focus_event", "focus")}}</dt>
- <dd>要素がフォーカスを受け取ったときに発生します。<br>
- {{domxref("GlobalEventHandlers/onfocus", "onfocus")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/focusin_event", "focusin")}}</dt>
- <dd>要素がフォーカスを受け取ろうとしているときに発生します。</dd>
- <dt>{{domxref("Element/focusout_event", "focusout")}}</dt>
- <dd>要素がフォーカスを失おうとしているときに発生します。</dd>
-</dl>
-
-<h3 id="Fullscreen_events">全画面イベント</h3>
-
-<dl>
- <dt>{{domxref("Element/fullscreenchange_event", "fullscreenchange")}}</dt>
- <dd>全画面モードへの移行時または終了時に、 {{domxref("Document")}} または {{domxref("Element")}} に送られます。</dd>
- <dd>{{domxref("Element.onfullscreenchange", "onfullscreenchange")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/fullscreenerror_event", "fullscreenerror")}}</dt>
- <dd>全画面モードへの移行または終了を試みている中でエラーが発生したときに、 <code>Document</code> または <code>Element</code> に送られます。</dd>
- <dd>{{domxref("Element.onfullscreenerror", "onfullscreenerror")}} プロパティから利用することもできます。</dd>
-</dl>
-
-<h3 id="Keyboard_events">キーボードイベント</h3>
-
-<dl>
- <dt><code>{{domxref("Element/keydown_event", "keydown")}}</code></dt>
- <dd>キーが押されたときに発生します。<br>
- {{domxref("GlobalEventHandlers/onkeydown", "onkeydown")}} プロパティから利用することもできます。</dd>
- <dt><code>{{domxref("Element/keypress_event", "keypress")}}</code></dt>
- <dd>文字の値を発生させるキーが押されたときに発生します。 {{deprecated_inline}}<br>
- {{domxref("GlobalEventHandlers/onkeypress", "onkeypress")}} プロパティから利用することもできます。</dd>
- <dt><code>{{domxref("Element/keyup_event", "keyup")}}</code></dt>
- <dd>キーが離されたときに発生します。<br>
- {{domxref("GlobalEventHandlers/onkeyup", "onkeyup")}} プロパティから利用することもできます。</dd>
-</dl>
-
-<h3 id="Mouse_events">マウスイベント</h3>
-
-<dl>
- <dt>{{domxref("Element/auxclick_event", "auxclick")}}</dt>
- <dd>ポインティングデバイスの第一ボタン以外のボタン (例えば、マウスの左ボタン以外のボタン) が要素上で押されて離されたときに発生します。<br>
- {{domxref("GlobalEventHandlers/onauxclick", "onauxclick")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/click_event", "click")}}</dt>
- <dd>ポインティングデバイスのボタン (例えば、マウスの第一ボタン) が単一の要素上で押されて離されたときに発生します。<br>
- {{domxref("GlobalEventHandlers/onclick", "onclick")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/contextmenu_event", "contextmenu")}}</dt>
- <dd>ユーザーがコンテキストメニューを開こうとしたときに発生します。<br>
- {{domxref("GlobalEventHandlers/oncontextmenu", "oncontextmenu")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/dblclick_event", "dblclick")}}</dt>
- <dd>ポインティングデバイスのボタン (例えば、マウスの第一ボタン) が単一の要素上で2回クリックされたときに発生します。<br>
- {{domxref("GlobalEventHandlers/ondblclick", "ondblclick")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/DOMActivate_event", "DOMActivate")}} {{Deprecated_Inline}}</dt>
- <dd>要素が、例えばマウスのクリックやキーの押下によってアクティブになったときに発生します。</dd>
- <dt>{{domxref("Element/mousedown_event", "mousedown")}}</dt>
- <dd>ポインティングデバイスのボタンが要素上で押されたときに発生します。<br>
- {{domxref("GlobalEventHandlers/onmousedown", "onmousedown")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/mouseenter_event", "mouseenter")}}</dt>
- <dd>ポインティングデバイス (ふつうはマウス) が、リスナーが割り当てられた要素の上へ移動したときに発生します。<br>
- {{domxref("GlobalEventHandlers/onmouseenter", "onmouseenter")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/mouseleave_event", "mouseleave")}}</dt>
- <dd>ポインティングデバイス (ふつうはマウス) が、リスナーが割り当てられた要素の外へ移動したときに発生します。<br>
- {{domxref("GlobalEventHandlers/onmouseleave", "onmouseleave")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/mousemove_event", "mousemove")}}</dt>
- <dd>ポインティングデバイス (ふつうはマウス) が、要素の上を移動したときに発生します。<br>
- {{domxref("GlobalEventHandlers/onmousemove", "onmousemove")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/mouseout_event", "mouseout")}}</dt>
- <dd>ポインティングデバイス (ふつうはマウス) が、リスナーが割り当てられた要素またはその子要素の外へ移動したときに発生します。<br>
- {{domxref("GlobalEventHandlers/onmouseout", "onmouseout")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/mouseover_event", "mouseover")}}</dt>
- <dd>ポインティングデバイス (ふつうはマウス) が、リスナーが割り当てられた要素またはその子要素の上を移動したときに発生します。<br>
- {{domxref("GlobalEventHandlers/onmouseover", "onmouseover")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/mouseup_event", "mouseup")}}</dt>
- <dd>ポインティングデバイスのボタンが要素の上で離されたときに発生します。<br>
- {{domxref("GlobalEventHandlers/onmouseup", "onmouseup")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/webkitmouseforcechanged_event", "webkitmouseforcechanged")}}</dt>
- <dd>trackpadtouchscreen の上の圧力が変化するたびに発生します。</dd>
- <dt>{{domxref("Element/webkitmouseforcedown_event", "webkitmouseforcedown")}}</dt>
- <dd>「強制クリック」と判断されるのに十分な圧力があった直後の mousedown イベントの後で発生します。</dd>
- <dt>{{domxref("Element/webkitmouseforcewillbegin_event", "webkitmouseforcewillbegin")}}</dt>
- <dd>{{domxref("Element/mousedown_event", "mousedown")}} イベントの前に発生します。</dd>
- <dt>{{domxref("Element/webkitmouseforceup_event", "webkitmouseforceup")}}</dt>
- <dd>「強制クリック」が終了したといえるほど圧力が減少した直後の {{domxref("Element/webkitmouseforcedown_event", "webkitmouseforcedown")}} イベントの後で発生します。</dd>
-</dl>
-
-<h3 id="Touch_events">タッチイベント</h3>
-
-<dl>
- <dt>{{domxref("Element/touchcancel_event", "touchcancel")}}</dt>
- <dd>1つ以上のタッチ点が実装依存の理由により破棄された (例えば、タッチ点が多く作られすぎた) 場合に発生します。<br>
- {{domxref("GlobalEventHandlers/ontouchcancel", "ontouchcancel")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/touchend_event", "touchend")}}</dt>
- <dd>1つ以上のタッチ点がタッチ面から取り除かれたときに発生します。<br>
- {{domxref("GlobalEventHandlers/ontouchend", "ontouchend")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/touchmove_event", "touchmove")}}</dt>
- <dd>1つ以上のタッチ点がタッチ面上で移動したときに発生します。<br>
- {{domxref("GlobalEventHandlers/ontouchmove", "ontouchmove")}} プロパティから利用することもできます。</dd>
- <dt>{{domxref("Element/touchstart_event", "touchstart")}}</dt>
- <dd>1つ以上のタッチ点がタッチ面に配置されたときに発生します。<br>
- {{domxref("GlobalEventHandlers/ontouchstart", "ontouchstart")}} プロパティから利用することもできます。</dd>
-</dl>
-
-<h2 id="Specifications">仕様書</h2>
-
-{{Specifications}}
-
-<h2 id="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat}}</p>
diff --git a/files/ja/web/api/element/index.md b/files/ja/web/api/element/index.md
new file mode 100644
index 0000000000..407d8b2672
--- /dev/null
+++ b/files/ja/web/api/element/index.md
@@ -0,0 +1,442 @@
+---
+title: Element
+slug: Web/API/Element
+tags:
+ - API
+ - DOM
+ - DOM リファレンス
+ - Element
+ - インターフェイス
+ - リファレンス
+ - Web API
+browser-compat: api.Element
+translation_of: Web/API/Element
+---
+{{APIRef("DOM")}}
+
+**`Element`** は {{DOMxRef("Document")}} が継承するオブジェクトの中にあるすべての要素オブジェクト(すなわち、要素を表現するオブジェクト)が継承する、もっとも一般的な基底クラスです。すべての種類の要素の共通するメソッドとプロパティのみを持ちます。もっと具体的なクラスが `Element` を継承しています。
+
+例えば {{DOMxRef("HTMLElement")}} インターフェイスは HTML 要素の基本インターフェイスであり、 {{DOMxRef("SVGElement")}} インターフェイスはすべての SVG 要素の基本になります。ほとんどの機能は、クラスの階層を下りると具体化していきます。
+
+XUL の `XULElement` インターフェイスのようなウェブプラットフォームの枠外の言語もまた、`Element` インターフェイスを実装しています。
+
+{{InheritanceDiagram}}
+
+## プロパティ
+
+_`Element` は、親インターフェイスである {{DOMxRef("Node")}}、およびその親インターフェイスである {{DOMxRef("EventTarget")}} からプロパティを継承しています。_
+
+- {{DOMxRef("Element.assignedSlot")}}{{readonlyInline}}
+ - : このノードが挿入された {{htmlelement("slot")}} を表す {{DOMxRef("HTMLSlotElement")}} を返します。
+- {{DOMxRef("Element.attributes")}} {{readOnlyInline}}
+ - : 対応する HTML 要素に関連したすべての属性のリストである {{DOMxRef("NamedNodeMap")}} を返します。
+- {{domxref("Element.childElementCount")}} {{readonlyInline}}
+ - : この要素の子要素の数を返します。
+- {{domxref("Element.children")}} {{readonlyInline}}
+ - : この要素の子要素を返します。
+- {{DOMxRef("Element.classList")}} {{readOnlyInline}}
+ - : class 属性のリストが入った {{DOMxRef("DOMTokenList")}} を返します。
+- {{DOMxRef("Element.className")}}
+ - : {{DOMxRef("DOMString")}} で、この要素のクラスを表します。
+- {{DOMxRef("Element.clientHeight")}} {{readOnlyInline}}
+ - : この要素の内部の高さを表す数値を返します。
+- {{DOMxRef("Element.clientLeft")}} {{readOnlyInline}}
+ - : この要素の左境界の幅を表す数値を返します。
+- {{DOMxRef("Element.clientTop")}} {{readOnlyInline}}
+ - : この要素の上境界の幅を表す数値を返します。
+- {{DOMxRef("Element.clientWidth")}} {{readOnlyInline}}
+ - : この要素の内部の幅を表す数値を返します。
+- {{domxref("Element.firstElementChild")}} {{readonlyInline}}
+ - : この要素の最初の子要素を返します。
+- {{DOMxRef("Element.id")}}
+ - : {{DOMxRef("DOMString")}} で、この要素の id を表します。
+- {{DOMxRef("Element.innerHTML")}}
+ - : {{DOMxRef("DOMString")}} で、この要素の内容のマークアップを表します。
+- {{domxref("Element.lastElementChild")}} {{readonlyInline}}
+ - : この要素の最後の子要素を返します。
+- {{DOMxRef("Element.localName")}} {{readOnlyInline}}
+ - : {{DOMxRef("DOMString")}} で、この要素の修飾名のローカル部分を表します。
+- {{DOMxRef("Element.namespaceURI")}} {{readonlyInline}}
+
+ - : この要素の名前空間の URI。名前空間がない場合は `null` になります。
+
+ > **Note:** Firefox 3.5 および以前のバージョンでは、HTML 要素の名前空間はありません。以降のバージョンでは、HTML 要素は HTML ツリーおよび XML ツリーで [`http://www.w3.org/1999/xhtml`](https://www.w3.org/1999/xhtml) 名前空間内に存在します。
+
+- {{DOMxRef("Element.nextElementSibling")}} {{readOnlyInline}}
+ - : {{DOMxRef("Element")}} で、ツリー上で自身の直後の要素を表します。兄弟ノードがなければ `null` になります。
+- {{DOMxRef("Element.outerHTML")}}
+ - : {{DOMxRef("DOMString")}} で、その要素の内容を含むマークアップを表します。値が設定された場合、その文字列から解釈されたノードでその要素を置換します。
+- {{DOMxRef("Element.part")}}
+ - : 要素のパート識別子 (すなわち、 `part` 属性を使用して設定されるもの) が、 {{domxref("DOMTokenList")}} として返されます。
+- {{DOMxRef("Element.prefix")}} {{readOnlyInline}}
+ - : {{DOMxRef("DOMString")}} で、要素の名前空間接頭辞を表します。接頭辞が指定されていない場合は `null` です。
+- {{DOMxRef("Element.previousElementSibling")}} {{readOnlyInline}}
+ - : {{DOMxRef("Element")}} で、ツリー上で自身の直前の要素を表します。兄弟ノードが無ければ `null` です。
+- {{DOMxRef("Element.scrollHeight")}} {{readOnlyInline}}
+ - : この要素のスクロールビューの高さを表す数値を返します。
+- {{DOMxRef("Element.scrollLeft")}}
+ - : 数値型で、この要素の左スクロールオフセット値を表します。
+- {{DOMxRef("Element.scrollLeftMax")}} {{Non-standard_Inline}} {{readOnlyInline}}
+ - : この要素で可能な左スクロールオフセットの最大値を表す数値を返します。
+- {{DOMxRef("Element.scrollTop")}}
+ - : この要素の上端が垂直方向にスクロールされた量をピクセル数で表す数値です。
+- {{DOMxRef("Element.scrollTopMax")}} {{Non-standard_Inline}} {{readOnlyInline}}
+ - : 要素で可能な上スクロールオフセットの最大値を表す数値を返します。
+- {{DOMxRef("Element.scrollWidth")}} {{readOnlyInline}}
+ - : 要素のスクロールビュー幅を表す数値を返します。
+- {{DOMxRef("Element.shadowRoot")}}{{readOnlyInline}}
+ - : 要素が所持しているオープンモードのシャドウルート、あるいはオープンモードのシャドウルートがない場合は null を返します。
+- {{DOMxRef("Element.openOrClosedShadowRoot")}} {{Non-standard_Inline}}{{readOnlyInline}}
+ - : オープン・クローズに関係なく、要素が所持しているさh同ルートを返します。**[WebExtensions](/ja/docs/Mozilla/Add-ons/WebExtensions) に限り使用できます。**
+- {{DOMxRef("Element.setHTML")}}
+ - : HTML の文字列を解釈して[無害化](/ja/docs/Web/API/HTML_Sanitizer_API)し、 DOM の中にこの要素のサブツリーとして挿入します。
+- {{DOMxRef("Element.slot")}} {{Experimental_Inline}}
+ - : この要素が挿入されているシャドウ DOM スロットの名前を返します。
+- {{DOMxRef("Element.tagName")}} {{readOnlyInline}}
+ - : この要素のタグ名を文字列で返します。
+
+### ARIA から導入されたプロパティ
+
+_`Element` インターフェイスには、 `ARIAMixin` ミックスインで定義されている以下のプロパティを持っています。_
+
+- {{domxref("Element.ariaAtomic")}}
+ - : {{domxref("DOMString")}} で [`aria-atomic`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-atomic) 属性を反映し、 [`aria-relevant`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-relevant) 属性で定義された変更通知に基づいて、支援技術が変更された領域のすべてを提示するか、一部のみを提示するかを示します。
+- {{domxref("Element.ariaAutoComplete")}}
+ - : {{domxref("DOMString")}} で、 [`aria-autocomplete`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-autocomplete) 属性を反映し、コンボボックス、検索ボックス、テキストボックスでテキストを入力する際に、ユーザーの意図した値の 1 つ以上の予測を表示するかどうか、予測が行われた場合にはどのように表示するかを指定します。
+- {{domxref("Element.ariaBusy")}}
+ - : {{domxref("DOMString")}} で [`aria-busy`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-busy) 属性を反映し、要素が修正されているかどうかを示します。支援技術では、修正が完了するまで待ってからユーザーに公開したい場合があります。
+- {{domxref("Element.ariaChecked")}}
+ - : {{domxref("DOMString")}} で [`aria-checked`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-checked) 属性を反映し、チェックボックス、ラジオボタン、その他のチェック状態を持つウィジェットの現在の「チェック」状態を示します。
+- {{domxref("Element.ariaColCount")}}
+ - : {{domxref("DOMString")}} で [`aria-colcount`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-colcount) 属性を反映し、テーブル、グリッド、ツリーグリッドの列数を定義します。
+- {{domxref("Element.ariaColIndex")}}
+ - : {{domxref("DOMString")}} で [`aria-colindex`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-colindex) 属性を反映し、テーブル、グリッド、ツリーグリッド内の列の総数に対する要素の列インデックスまたは位置を定義します。
+- {{domxref("Element.ariaColIndexText")}}
+ - : {{domxref("DOMString")}} で [`aria-colindextext`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-colindextext) 属性を反映し、 aria-colindex の代替となる人間が読めるテキストを定義します。
+- {{domxref("Element.ariaColSpan")}}
+ - : {{domxref("DOMString")}} で [`aria-colspan`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-colspan) 属性を反映し、テーブル、グリッド、ツリーグリッド内のセルまたはグリッドセルがカバーする列数を定義します。
+- {{domxref("Element.ariaCurrent")}}
+ - : {{domxref("DOMString")}} で [`aria-current`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-current) 属性を反映し、コンテナーまたは関連要素のセット内の現在の項目を表す要素を示します。
+- {{domxref("Element.ariaDescription")}}
+ - : {{domxref("DOMString")}} で [`aria-description`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-description) 属性を反映し、現在の要素を説明または注釈する文字列値を定義します。
+- {{domxref("Element.ariaDisabled")}}
+ - : {{domxref("DOMString")}} で [`aria-disabled`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-disabled) 属性を反映し、この要素が知覚可能であるが無効であるため、編集やその他の操作ができないことを示します。
+- {{domxref("Element.ariaExpanded")}}
+ - : {{domxref("DOMString")}} で [`aria-expanded`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-expanded) 属性を反映し、この要素が所有または制御するグループ化要素が展開されているか畳まれているかを示します。
+- {{domxref("Element.ariaHasPopup")}}
+ - : {{domxref("DOMString")}} で [`aria-haspopup`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-haspopup) 属性を反映し、この要素によって引き起こされるメニューやダイアログのような対話型のポップアップ要素の有無と種類を示します。
+- {{domxref("Element.ariaHidden")}}
+ - : {{domxref("DOMString")}} で [`aria-hidden`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-hidden) 属性を反映し、この要素がアクセシビリティ API に公開されているかどうかを示します。
+- {{domxref("Element.ariaKeyShortcuts")}}
+ - : {{domxref("DOMString")}} で [`aria-keyshortcuts`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-keyshortcuts) 属性を反映し、要素を活性化したりフォーカスを与えたりするために作者が実装したキーボードショートカットを示します。
+- {{domxref("Element.ariaLabel")}}
+ - : {{domxref("DOMString")}} で [`aria-label`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-label) 属性を反映し、現在の要素をラベル付けする文字列値を定義します。
+- {{domxref("Element.ariaLevel")}}
+ - : {{domxref("DOMString")}} で [`aria-level`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-level) 属性を反映し、構造内の要素の階層レベルを定義します。
+- {{domxref("Element.ariaLive")}}
+ - : {{domxref("DOMString")}} で [`aria-live`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-live) 属性を反映し、この要素が更新されること、ユーザーエージェント、支援技術、ユーザーがライブ領域から期待できる更新の種類を記述します。
+- {{domxref("Element.ariaModal")}}
+ - : {{domxref("DOMString")}} で [`aria-modal`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-modal) 属性を反映し、要素が表示されたときにモーダルであるかどうかを示します。
+- {{domxref("Element.ariaMultiline")}}
+ - : {{domxref("DOMString")}} で [`aria-multiline`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-multiline) 属性を反映し、テキストボックスが複数行の入力を受け入れるか、一行のみを受け入れるかを示します。
+- {{domxref("Element.ariaMultiSelectable")}}
+ - : {{domxref("DOMString")}} で [`aria-multiselectable`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-multiselectable) 属性を反映し、ユーザーが現在の選択可能な子孫から複数の項目を選択できることを示します。
+- {{domxref("Element.ariaOrientation")}}
+ - : {{domxref("DOMString")}} で [`aria-orientation`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-orientation) 属性を反映し、要素の方向が水平、垂直、または不明/曖昧であることを示す。
+- {{domxref("Element.ariaPlaceholder")}}
+ - : {{domxref("DOMString")}} で [`aria-placeholder`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-placeholder) 属性を反映し、コントロールに値がない場合にユーザーのデータ入力を支援するための短いヒントを定義します。
+- {{domxref("Element.ariaPosInSet")}}
+ - : {{domxref("DOMString")}} で [`aria-posinset`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-posinset) 属性を反映し、リストアイテムまたはツリーアイテムの現在のセットにおける要素の数または位置を定義します。
+- {{domxref("Element.ariaPressed")}}
+ - : {{domxref("DOMString")}} で [`aria-pressed`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-pressed) 属性を反映し、トグルボタンの現在の「押された」状態を示します。
+- {{domxref("Element.ariaReadOnly")}}
+ - : {{domxref("DOMString")}} で [`aria-readonly`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-readonly) 属性を反映し、要素が編集不可能であることを示すが、それ以外は操作可能であることを示します。
+- {{domxref("Element.ariaRelevant")}}
+ - : {{domxref("DOMString")}} で [`aria-relevant`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-relevant) 属性を反映し、ライブリージョン内のアクセシビリティツリーが変更された場合に、ユーザエージェントがどのような通知を行うかを示します。これは、 `aria-live` リージョン内のどのような変更が関連性があり、アナウンスされるべきかを記述するために使用されます。
+- {{domxref("Element.ariaRequired")}}
+ - : {{domxref("DOMString")}} で [`aria-required`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-required) 属性を反映し、フォームを送信する前に要素にユーザーの入力が必要であることを示します。
+- {{domxref("Element.ariaRoleDescription")}}
+ - : {{domxref("DOMString")}} で [`aria-roledescription`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-roledescription) 属性を反映し、要素の役割について、人間が読める、著者がローカライズした説明を定義します。
+- {{domxref("Element.ariaRowCount")}}
+ - : {{domxref("DOMString")}} で [`aria-rowcount`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-rowcount) 属性を反映し、テーブル、グリッド、ツリーグリッドの行の総数を定義します。
+- {{domxref("Element.ariaRowIndex")}}
+ - : {{domxref("DOMString")}} で [`aria-rowindex`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-rowindex) 属性を反映し、テーブル、グリッド、ツリーグリッド内の行の総数に対する要素の行インデックスまたは位置を定義します。
+- {{domxref("Element.ariaRowIndexText")}}
+ - : {{domxref("DOMString")}} で [`aria-rowindextext`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-rowindextext) 属性を反映し、 aria-rowindex の代替となる人間が読めるテキストを定義しています。
+- {{domxref("Element.ariaRowSpan")}}
+ - : {{domxref("DOMString")}} で [`aria-rowspan`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-rowspan) 属性を反映し、テーブル、グリッド、ツリーグリッド内のセルまたはグリッドセルがカバーする行数を定義します。
+- {{domxref("Element.ariaSelected")}}
+ - : {{domxref("DOMString")}} で [`aria-selected`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-selected) 属性を反映し、選択状態を持つ要素の現在の「選択された」状態を示します。
+- {{domxref("Element.ariaSetSize")}}
+ - : {{domxref("DOMString")}} で [`aria-setsize`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-setsize) 属性を反映し、現在のリストアイテムまたはツリーアイテムのセットのアイテム数を定義します。
+- {{domxref("Element.ariaSort")}}
+ - : {{domxref("DOMString")}} で [`aria-sort`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-sort) 属性を反映し、テーブルやグリッドのアイテムが昇順または降順でソートされるかどうかを示します。
+- {{domxref("Element.ariaValueMax")}}
+ - : {{domxref("DOMString")}} で [`aria-valueMax`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-valuemax) 属性を反映し、 range ウィジェットの最大許容値を定義します。
+- {{domxref("Element.ariaValueMin")}}
+ - : {{domxref("DOMString")}} で [`aria-valueMin`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-valuemin) 属性を反映し、 range ウィジェットに許容される最小値を定義します。
+- {{domxref("Element.ariaValueNow")}}
+ - : {{domxref("DOMString")}} で [`aria-valueNow`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-valuenow) 属性を反映し、 range ウィジェットの現在の値を定義します。
+- {{domxref("Element.ariaValueText")}}
+ - : {{domxref("DOMString")}} で [`aria-valuetext`](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-valuetext) 属性を反映し、 range ウィジェットの aria-valuenow の代替となる人間が読めるテキストを定義します。
+
+## メソッド
+
+_`Element` は親である {{DOMxRef("Node")}}、およびその親である {{DOMxRef("EventTarget")}} からメソッドを継承しています。_
+
+- {{DOMxRef("EventTarget.addEventListener()")}}
+ - : この要素、特定のイベント型を扱うイベントハンドラーを登録します。
+- {{DOMxRef("Element.after()")}}
+ - : {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトをこの `Element` の親の子ノードリストの中、 `Element` の直後に追加します。
+- {{DOMxRef("Element.attachShadow()")}}
+ - : 指定した要素にシャドウ DOM ツリーを結びつけて、その {{DOMxRef("ShadowRoot")}} への参照を返します。
+- {{DOMxRef("Element.animate()")}} {{Experimental_Inline}}
+ - : この要素でアニメーションを作成および実行するためのショートカットメソッドです。作成した Animation オブジェクトのインスタンスを返します。
+- {{DOMxRef("Element.append()")}}
+ - : この要素の最後の子の後に、一連の {{domxref("Node")}} オブジェクトまたは {{domxref("DOMString")}} オブジェクトを挿入します。
+- {{DOMxRef("Element.before()")}}
+ - : {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトをこの `Element` の親の子ノードリストの中、 `Element` の直前に追加します。
+- {{DOMxRef("Element.closest()")}}
+ - : {{DOMxRef("Element")}} 型で、引数に指定したセレクターによって選択される要素がもっとも近い祖先要素(または当該要素自身)を返します。
+- {{DOMxRef("Element.createShadowRoot()")}} {{Non-standard_Inline}} {{Deprecated_Inline}}
+ - : この要素に[シャドウ DOM](/ja/docs/Web/Web_Components/Using_shadow_DOM) を作成し、シャドウホストにします。 {{DOMxRef("ShadowRoot")}} を返します。
+- {{DOMxRef("Element.computedStyleMap()")}} {{Experimental_Inline}}
+ - : {{DOMxRef("StylePropertyMapReadOnly")}} インターフェイスで、 {{DOMxRef("CSSStyleDeclaration")}} に代わる、CSS 宣言ブロックを読み取り専用で表現したものを返します。
+- {{DOMxRef("EventTarget.dispatchEvent()")}}
+ - : DOM 内のこのノードにイベントを送ります。そして、イベントをキャンセルしたハンドラーがないかを示す論理値を返します。
+- {{DOMxRef("Element.getAnimations()")}} {{Experimental_Inline}}
+ - : 要素でアクティブな Animation オブジェクトの配列を返します。
+- {{DOMxRef("Element.getAttribute()")}}
+ - : 現在ノードから指定された名前付きの属性値を取得して文字列で返します。
+- {{DOMxRef("Element.getAttributeNames()")}}
+ - : 現在の要素の属性名の配列を返します。
+- {{DOMxRef("Element.getAttributeNode()")}}
+ - : 現在のノードから、指定された属性のノード表現を取得し、 {{DOMxRef("Attr")}} として返します。
+- {{DOMxRef("Element.getAttributeNodeNS()")}}
+ - : 指定された名前と名前空間を持つ属性のノード表現を現在のノードから取得し、それを {{DOMxRef("Attr")}} として返します。
+- {{DOMxRef("Element.getAttributeNS()")}}
+ - : 現在のノードから指定された名前と名前空間を持つ属性値を取得して、文字列で返します。
+- {{DOMxRef("Element.getBoundingClientRect()")}}
+ - : この要素のサイズと、ビューポートにおける位置を返します。
+- {{domxref("Element.getBoxQuads()")}} {{experimental_inline}}
+ - : このノードの CSS フラグメントを表す {{domxref("DOMQuad")}} オブジェクトのリストを返します。
+- {{DOMxRef("Element.getClientRects()")}}
+ - : クライアント領域内のテキストの各行の外接矩形 (bounding rectangle) の集合を返します。
+- {{DOMxRef("Element.getElementsByClassName()")}}
+ - : 生きた {{DOMxRef("HTMLCollection")}} で、現在の要素から、引数に指定したクラス名のリストに該当するすべての子孫要素を生きた {{DOMxRef("HTMLCollection")}} で、返します。
+- {{DOMxRef("Element.getElementsByTagName()")}}
+ - : 現在要素から、特定のタグ名を持つすべての子孫要素の集合を取得して生きた {{DOMxRef("HTMLCollection")}} で返します。
+- {{DOMxRef("Element.getElementsByTagNameNS()")}}
+ - : 生きた {{DOMxRef("HTMLCollection")}} で、現在要素から、特定のタグ名と名前空間を持つすべての子孫要素の集合を取得して、生きた {{DOMxRef("HTMLCollection")}} で返します。
+- {{DOMxRef("Element.hasAttribute()")}}
+ - : 要素が指定された指定された属性を持っているか否かを示す論理値を返します。
+- {{DOMxRef("Element.hasAttributeNS()")}}
+ - : 要素が指定された名前空間内に指定された属性を持っているか否かを示す論理値を返します。
+- {{DOMxRef("Element.hasAttributes()")}}
+ - : 要素が現在 1 つ以上の属性をもっているかを示す論理値を返します。
+- {{DOMxRef("Element.hasPointerCapture()")}}
+ - : 呼び出された要素が、指定されたポインター ID によって識別されるポインターのポインターキャプチャを持っているかどうかを示します。
+- {{DOMxRef("Element.insertAdjacentElement()")}}
+ - : メソッドを実行した要素に対して相対的な指定位置に、要素ノードを挿入します。
+- {{DOMxRef("Element.insertAdjacentHTML()")}}
+ - : テキストを HTML または XML として解釈し、解釈結果のノードをツリーの指定した位置に挿入します。
+- {{DOMxRef("Element.insertAdjacentText()")}}
+ - : メソッドを実行した要素に対して相対的な指定位置に、テキストノードを挿入します。
+- {{DOMxRef("Element.matches()")}}
+ - : 要素が指定されたセレクター文字列で選択されるか否かを示す論理値を返します。
+- {{DOMxRef("Element.prepend()")}}
+ - : この要素の最初の子の前に、一連の {{domxref("Node")}} オブジェクトまたは {{domxref("DOMString")}} オブジェクトを挿入します。
+- {{DOMxRef("Element.querySelector()")}}
+ - : 要素に対して、指定したセレクターに一致する最初の {{DOMxRef("Node")}} を返します。
+- {{DOMxRef("Element.querySelectorAll()")}}
+ - : 要素に対して、指定したセレクターに一致するノードの {{DOMxRef("NodeList")}} を返します。
+- {{DOMxRef("Element.releasePointerCapture()")}}
+ - : 以前に特定の{{DOMxRef("PointerEvent","ポインターイベント")}}向けに設定したポインターキャプチャーを解放 (停止) します。
+- {{DOMxRef("Element.remove()")}}
+ - : 親要素の子リストから、要素を取り除きます。
+- {{DOMxRef("Element.removeAttribute()")}}
+ - : 現在ノードから,指定された名前を持つ属性を取り除きます。
+- {{DOMxRef("Element.removeAttributeNode()")}}
+ - : 現在のノードから名前の付いた属性のノード表現を取り除きます。
+- {{DOMxRef("Element.removeAttributeNS()")}}
+ - : 現在ノードから,指定された名前と名前空間を持つ属性を取り除きます。
+- {{DOMxRef("EventTarget.removeEventListener()")}}
+ - : 要素からイベントリスナーを取り除きます。
+- {{DOMxRef("Element.replaceChildren()")}}
+ - : {{domxref("Node")}} の既存の子を指定された新しい一連の子に置き換えます。
+- {{DOMxRef("Element.replaceWith()")}}
+ - : 親の子リストの要素を、一連の {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトで置き換えます。
+- {{DOMxRef("Element.requestFullscreen()")}} {{Experimental_Inline}}
+ - : 要素を全画面表示するよう、ブラウザーへ非同期的に要求します。
+- {{DOMxRef("Element.requestPointerLock()")}} {{Experimental_Inline}}
+ - : 指定した要素でポインターをロックするよう、非同期的に要求できます。
+- {{domxref("Element.scroll()")}}
+ - : 指定された要素の中で特定の座標のセットへスクロールします。
+- {{domxref("Element.scrollBy()")}}
+ - : 指定された量だけ要素をスクロールします。
+- {{DOMxRef("Element.scrollIntoView()")}} {{Experimental_Inline}}
+ - : 要素がビューの内側に来るまでページをスクロールします。
+- {{domxref("Element.scrollTo()")}}
+ - : 指定された要素の中で特定の座標のセットへスクロールします。
+- {{DOMxRef("Element.setAttribute()")}}
+ - : 現在ノードに、指定された名前を持つ属性値を設定します。
+- {{DOMxRef("Element.setAttributeNode()")}}
+ - : 現在のノードから指定された属性のノード表現を設定します。
+- {{DOMxRef("Element.setAttributeNodeNS()")}}
+ - : 指定された名前と名前空間を持つ属性のノード表現を、現在のノードから設定します。
+- {{DOMxRef("Element.setAttributeNS()")}}
+ - : 現在ノードに、指定された名前と名前空間を持つ属性値を設定します。
+- {{DOMxRef("Element.setCapture()")}} {{Non-standard_Inline}}{{Deprecated_Inline}}
+ - : マウスイベントキャプチャーを設定し、すべてのマウスイベントをこの要素にリダイレクトします。
+- {{DOMxRef("Element.setPointerCapture()")}}
+ - : 指定された要素を、以降の[ポインターイベント](/ja/docs/Web/API/Pointer_events)のキャプチャー対象として指定します。
+- {{DOMxRef("Element.toggleAttribute()")}}
+ - : 論理属性のオンオフを切り替えます。属性が存在していれば削除、属性が存在していなければ追加します。
+
+## イベント
+
+これらのイベントを待ち受けするには、 `addEventListener()` を使用するか、イベントリスナーをこのインターフェイスの `onイベント名` プロパティに代入するかします。
+
+- {{domxref("HTMLDialogElement/cancel_event", "cancel")}}
+
+ - : ユーザーがブラウザーに、現在開いているダイアログを閉じたいと指示したときに {{HTMLElement("dialog")}} に発行されます。ブラウザーがこのイベントを発行させる可能性があるのは、例えばユーザーが <kbd>Esc</kbd> キーを押したり、ブラウザーの UI の一部である「ダイアログを閉じる」ボタンをクリックしたりした場合です。 {{domxref("GlobalEventHandlers/oncancel", "oncancel")}} プロパティからも利用できます。
+- {{domxref("Element/error_event", "error")}}
+ - : リソースの読み込みに失敗したか、利用できなかった場合に発行されます。例えば、スクリプトに実行エラーがあった場合や、画像が見つからなかった場合、無効であった場合などです。
+ {{domxref("GlobalEventHandlers/onerror", "onerror")}} プロパティからも利用できます。
+- {{domxref("Element/scroll_event", "scroll")}}
+ - : 文書のビューまたは要素がスクロールしたときに発行されます。
+ {{DOMxRef("GlobalEventHandlers.onscroll", "onscroll")}} プロパティからも利用できます。
+- {{domxref("Element/select_event", "select")}}
+ - : いくらかのテキストが選択されたときに発行されます。
+ {{DOMxRef("GlobalEventHandlers.onselect", "onselect")}} プロパティからも利用できます。
+- {{domxref("Element/show_event", "show")}}
+ - : {{domxref("Element/contextmenu_event", "contextmenu")}} イベントが [`contextmenu`](/ja/docs/Web/HTML/Global_attributes/contextmenu) 属性 {{deprecated_inline}} を持つ要素で発生したか、バブリングで到達した場合に発行されます。
+ {{DOMxRef("GlobalEventHandlers.onshow", "onshow")}} プロパティからも利用できます。
+- {{domxref("Element/wheel_event","wheel")}}
+ - : ユーザーがポインティングデバイス(普通はマウス)のホイールボタンを回転させたときに発行されます。
+ {{DOMxRef("GlobalEventHandlers.onwheel", "onwheel")}} プロパティからも利用できます。
+- {{domxref("Element/securitypolicyviolation_event","securitypolicyviolation")}}
+ - : [コンテンツセキュリティポリシー](/ja/docs/Web/HTTP/CSP)の違反があった場合に発行されます。
+ グローバルの {{DOMxRef("GlobalEventHandlers.onsecuritypolicyviolation", "onsecuritypolicyviolation")}} プロパティからも利用できます。これは要素と {{domxref("Document")}} と {{domxref("Window")}} の各オブジェクトで利用できます。
+
+### クリップボードイベント
+
+- {{domxref("Element/copy_event", "copy")}}
+ - : ユーザーがブラウザーのユーザーインターフェイスを通して、コピー操作を行ったときに発行されます。
+ {{domxref("HTMLElement/oncopy", "oncopy")}} プロパティからも利用できます。
+- {{domxref("Element/cut_event", "cut")}}
+ - : ユーザーがブラウザーのユーザーインターフェイスを通して、切り取り操作を行ったときに発行されます。
+ {{domxref("HTMLElement/oncut", "oncut")}} プロパティからも利用できます。
+- {{domxref("Element/paste_event", "paste")}}
+ - : ユーザーがブラウザーのユーザーインターフェイスを通して、貼り付け操作を行ったときに発行されます。
+ {{domxref("HTMLElement/onpaste", "onpaste")}} プロパティからも利用できます。
+
+### 構成イベント
+
+- {{domxref("Element/compositionend_event", "compositionend")}}
+ - : {{glossary("input method editor", "インプットメソッドエディター")}}のようなテキスト構成システムで、現在の入力セッションが完了またはキャンセルされたときに発行されます。
+- {{domxref("Element/compositionstart_event", "compositionstart")}}
+ - : {{glossary("input method editor", "インプットメソッドエディター")}}のようなテキスト構成システムで、新しい入力セッションを始まったときに発行されます。
+- {{domxref("Element/compositionupdate_event", "compositionupdate")}}
+ - : {{glossary("input method editor", "インプットメソッドエディター")}}のようなテキスト構成システムによって制御されている入力セッションのコンテキストに、新しい文字が入力されたときに発行されます。
+
+### フォーカスイベント
+
+- {{domxref("Element/blur_event", "blur")}}
+ - : 要素がフォーカスを失ったときに発行されます。
+ {{domxref("GlobalEventHandlers/onblur", "onblur")}} プロパティからも利用できます。
+- {{domxref("Element/focus_event", "focus")}}
+ - : 要素がフォーカスを受け取ったときに発行されます。
+ {{domxref("GlobalEventHandlers/onfocus", "onfocus")}} プロパティからも利用できます。
+- {{domxref("Element/focusin_event", "focusin")}}
+ - : 要素がフォーカスを受け取ろうとしているときに発行されます。
+- {{domxref("Element/focusout_event", "focusout")}}
+ - : 要素がフォーカスを失おうとしているときに発行されます。
+
+### 全画面イベント
+
+- {{domxref("Element/fullscreenchange_event", "fullscreenchange")}}
+ - : [全画面](/ja/docs/Web/API/Fullscreen_API/Guide)モードへの移行時または終了時に、 {{domxref("Element")}} に送られます。
+- {{domxref("Element/fullscreenerror_event", "fullscreenerror")}}
+ - : [全画面](/ja/docs/Web/API/Fullscreen_API/Guide)モードへの移行または終了を試みている中でエラーが発生したときに、 `Element` に送られます。
+
+### キーボードイベント
+
+- `{{domxref("Element/keydown_event", "keydown")}}`
+ - : キーが押されたときに発行されます。
+ {{domxref("GlobalEventHandlers/onkeydown", "onkeydown")}} プロパティからも利用できます。
+- `{{domxref("Element/keypress_event", "keypress")}}`
+ - : 文字の値を発行させるキーが押されたときに発行されます。 {{deprecated_inline}}
+ {{domxref("GlobalEventHandlers/onkeypress", "onkeypress")}} プロパティからも利用できます。
+- `{{domxref("Element/keyup_event", "keyup")}}`
+ - : キーが離されたときに発行されます。
+ {{domxref("GlobalEventHandlers/onkeyup", "onkeyup")}} プロパティからも利用できます。
+
+### マウスイベント
+
+- {{domxref("Element/auxclick_event", "auxclick")}}
+ - : ポインティングデバイスの第一ボタン以外のボタン(例えば、マウスの左ボタン以外のボタン)が要素上で押されて離されたときに発行されます。
+ {{domxref("GlobalEventHandlers/onauxclick", "onauxclick")}} プロパティからも利用できます。
+- {{domxref("Element/click_event", "click")}}
+ - : ポインティングデバイスのボタン(例えば、マウスの第一ボタン)が単一の要素上で押されて離されたときに発行されます。
+ {{domxref("GlobalEventHandlers/onclick", "onclick")}} プロパティからも利用できます。
+- {{domxref("Element/contextmenu_event", "contextmenu")}}
+ - : ユーザーがコンテキストメニューを開こうとしたときに発行されます。
+ {{domxref("GlobalEventHandlers/oncontextmenu", "oncontextmenu")}} プロパティからも利用できます。
+- {{domxref("Element/dblclick_event", "dblclick")}}
+ - : ポインティングデバイスのボタン(例えば、マウスの第一ボタン)が単一の要素上で 2 回クリックされたときに発行されます。
+ {{domxref("GlobalEventHandlers/ondblclick", "ondblclick")}} プロパティからも利用できます。
+- {{domxref("Element/DOMActivate_event", "DOMActivate")}} {{Deprecated_Inline}}
+ - : 要素が、例えばマウスのクリックやキーの押下によってアクティブになったときに発行されます。
+- {{domxref("Element/mousedown_event", "mousedown")}}
+ - : ポインティングデバイスのボタンが要素上で押されたときに発行されます。
+ {{domxref("GlobalEventHandlers/onmousedown", "onmousedown")}} プロパティからも利用できます。
+- {{domxref("Element/mouseenter_event", "mouseenter")}}
+ - : ポインティングデバイス(ふつうはマウス)が、リスナーが割り当てられた要素の上へ移動したときに発行されます。
+ {{domxref("GlobalEventHandlers/onmouseenter", "onmouseenter")}} プロパティからも利用できます。
+- {{domxref("Element/mouseleave_event", "mouseleave")}}
+ - : ポインティングデバイス(ふつうはマウス)が、リスナーが割り当てられた要素の外へ移動したときに発行されます。
+ {{domxref("GlobalEventHandlers/onmouseleave", "onmouseleave")}} プロパティからも利用できます。
+- {{domxref("Element/mousemove_event", "mousemove")}}
+ - : ポインティングデバイス(ふつうはマウス)が、要素の上を移動したときに発行されます。
+ {{domxref("GlobalEventHandlers/onmousemove", "onmousemove")}} プロパティからも利用できます。
+- {{domxref("Element/mouseout_event", "mouseout")}}
+ - : ポインティングデバイス(ふつうはマウス)が、リスナーが割り当てられた要素またはその子要素の外へ移動したときに発行されます。
+ {{domxref("GlobalEventHandlers/onmouseout", "onmouseout")}} プロパティからも利用できます。
+- {{domxref("Element/mouseover_event", "mouseover")}}
+ - : ポインティングデバイス(ふつうはマウス)が、リスナーが割り当てられた要素またはその子要素の上を移動したときに発行されます。
+ {{domxref("GlobalEventHandlers/onmouseover", "onmouseover")}} プロパティからも利用できます。
+- {{domxref("Element/mouseup_event", "mouseup")}}
+ - : ポインティングデバイスのボタンが要素の上で離されたときに発行されます。
+ {{domxref("GlobalEventHandlers/onmouseup", "onmouseup")}} プロパティからも利用できます。
+- {{domxref("Element/webkitmouseforcechanged_event", "webkitmouseforcechanged")}}
+ - : trackpadtouchscreen の上の圧力が変化するたびに発行されます。
+- {{domxref("Element/webkitmouseforcedown_event", "webkitmouseforcedown")}}
+ - : 「強制クリック」と判断されるのに十分な圧力があった直後の mousedown イベントの後で発行されます。
+- {{domxref("Element/webkitmouseforcewillbegin_event", "webkitmouseforcewillbegin")}}
+ - : {{domxref("Element/mousedown_event", "mousedown")}} イベントの前に発行されます。
+- {{domxref("Element/webkitmouseforceup_event", "webkitmouseforceup")}}
+ - : 「強制クリック」が終了したといえるほど圧力が減少した直後の {{domxref("Element/webkitmouseforcedown_event", "webkitmouseforcedown")}} イベントの後で発行されます。
+
+### タッチイベント
+
+- {{domxref("Element/touchcancel_event", "touchcancel")}}
+ - : 1 つ以上のタッチ点が実装依存の理由により破棄された(例えば、タッチ点が多く作られすぎた)場合に発行されます。
+ {{domxref("GlobalEventHandlers/ontouchcancel", "ontouchcancel")}} プロパティからも利用できます。
+- {{domxref("Element/touchend_event", "touchend")}}
+ - : 1 つ以上のタッチ点がタッチ面から取り除かれたときに発行されます。
+ {{domxref("GlobalEventHandlers/ontouchend", "ontouchend")}} プロパティからも利用できます。
+- {{domxref("Element/touchmove_event", "touchmove")}}
+ - : 1 つ以上のタッチ点がタッチ面上で移動したときに発行されます。
+ {{domxref("GlobalEventHandlers/ontouchmove", "ontouchmove")}} プロパティからも利用できます。
+- {{domxref("Element/touchstart_event", "touchstart")}}
+ - : 1 つ以上のタッチ点がタッチ面に配置されたときに発行されます。
+ {{domxref("GlobalEventHandlers/ontouchstart", "ontouchstart")}} プロパティからも利用できます。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
diff --git a/files/ja/web/api/element/innerhtml/index.html b/files/ja/web/api/element/innerhtml/index.html
deleted file mode 100644
index bd63262b6c..0000000000
--- a/files/ja/web/api/element/innerhtml/index.html
+++ /dev/null
@@ -1,213 +0,0 @@
----
-title: Element.innerHTML
-slug: Web/API/Element/innerHTML
-tags:
- - API
- - DOM
- - DOM Parsing
- - Element
- - Parsing HTML
- - Property
- - Reference
- - innerHTML
- - プロパティ
-browser-compat: api.Element.innerHTML
-translation_of: Web/API/Element/innerHTML
----
-<div>{{APIRef("DOM")}}</div>
-
-<p><span class="seoSummary">{{domxref("Element")}} オブジェクトの <strong><code>innerHTML</code></strong> プロパティは、要素内の HTML または XML のマークアップを取得したり設定したりします。</span></p>
-
-<div class="note"><strong>メモ:</strong> {{HTMLElement("div")}}, {{HTMLElement("span")}}, {{HTMLElement("noembed")}} ノードが <code>(&amp;)</code>, <code>(&lt;)</code>, <code>(&gt;)</code> の文字を含むテキストの子ノードを持っている場合、 <code>innerHTML</code> はこれらの文字を HTML エンティティの <code>"&amp;amp;"</code>, <code>"&amp;lt;"</code>, <code>"&amp;gt;"</code> としてそれぞれ返します。これらのテキストノードの内容の生のコピーを取得するには {{domxref("Node.textContent")}} を使用してください。</div>
-
-<p>要素の内容を置き換えるというより、文書に HTML を挿入するという場合には、 {{domxref("Element.insertAdjacentHTML", "insertAdjacentHTML()")}} メソッドを使用してください。</p>
-
-<h2 id="Syntax">構文</h2>
-
-<pre class="brush: js">const <var>content</var> = <var>element</var>.innerHTML;
-
-<var>element</var>.innerHTML = <var>htmlString</var>;
-</pre>
-
-<h3 id="Value">値</h3>
-
-<p>要素の子孫を HTML シリアライズしたものを含んだ {{domxref("DOMString")}} です。 <code>innerHTML</code> に値を設定すると、要素のすべての子孫を削除して、 <var>htmlString</var> の文字列で与えられた HTML を解析して構築されたノードに置き換えます。</p>
-
-<h3 id="Exceptions">例外</h3>
-
-<dl>
- <dt><code>SyntaxError</code></dt>
- <dd>正しくない形の HTML の文字列を使用して <code>innerHTML</code> の値を設定しようとした場合。</dd>
- <dt><code>NoModificationAllowedError</code></dt>
- <dd>親が {{domxref("Document")}} であるノードに HTML を挿入しようとした場合。</dd>
-</dl>
-
-<h2 id="Usage_notes">使用上のメモ</h2>
-
-<p><code>innerHTML</code> プロパティは、ページの現在の HTML ソースを、ページが最初に読み込まれてから行われたあらゆる変更を含めて、見るために利用することができます。</p>
-
-<h3 id="Reading_the_HTML_contents_of_an_element">要素の HTML コンテンツの読み取り</h3>
-
-<p><code>innerHTML</code> を読み取ると、ユーザーエージェントが要素の子孫で構成される HTML または XML の断片をシリアライズします。結果として文字列が返ります。</p>
-
-<pre class="brush: js">let contents = myElement.innerHTML;</pre>
-
-<p>これで、 HTML のコンテンツのノードの HTML マークアップを見ることができます。</p>
-
-<div class="note">
- <p><strong>メモ:</strong> 返される HTML または XML の断片は、現在の要素の中身に基づいて生成されますので、返される断片のマークアップや整形方法は、元のページのマークアップと同じであるとは限りません。</p>
-</div>
-
-<h3 id="Replacing_the_contents_of_an_element">要素の中身の置き換え</h3>
-
-<p><code>innerHTML</code> の値を設定することで、既存の要素の内容を新しい内容に置き換えることが簡単にできます。</p>
-
-<p>例えば、文書の {{domxref("Document.body", "body")}} 属性の内容を消去することで、文書の内容全体を消去することができます。</p>
-
-<pre class="brush: js">document.body.innerHTML = "";</pre>
-
-<p>この例は文書の現在の HTML マークアップを走査し、 <code>"&lt;"</code> の文字を HTML エンティティの <code>"&amp;lt;"</code> に置き換え、それによって本質的に HTML を生テキストに変換します。そしてこれを {{HTMLElement("pre")}} で囲みます。そして、 <code>innerHTML</code> の値をこの新しい文字列に変更します。結果として、文書の内容がページ全体のソースコードの表示に置き換わります。</p>
-
-<pre class="brush: js">document.documentElement.innerHTML = "&lt;pre&gt;" +
- document.documentElement.innerHTML.replace(/&lt;/g,"&amp;lt;") +
- "&lt;/pre&gt;";</pre>
-
-<h4 id="Operational_details">操作の詳細</h4>
-
-<p><code>innerHTML</code> に値を設定すると、正確には何が起きるのでしょうか?これを行うと、ユーザーエージェントは以下のステップを追います。</p>
-
-<ol>
- <li>指定された値は (文書型に基づいて) HTML または XML として解釈され、新しい一連の要素の DOM ノードを表す {{domxref("DocumentFragment")}} オブジェクトの中に結果が入れられます。</li>
- <li>中身を置き換えようとしている要素が {{HTMLElement("template")}} 要素である場合は、 <code>&lt;template&gt;</code> 要素の {{domxref("HTMLTemplateElement.content", "content")}} 属性を、ステップ1で生成された新しい <code>DocumentFragment</code> で置き換えます。</li>
- <li>その他の要素はすべて、要素の内容を新しい <code>DocumentFragment</code> のノードで置き換えます。</li>
-</ol>
-
-<h3 id="Security_considerations">セキュリティの考慮事項</h3>
-
-<p>ウェブページにテキストを挿入するために <code>innerHTML</code> を使用している例は珍しくありませんありません。これがサイト上の攻撃ベクトルになる可能性があり、潜在的なセキュリティリスクが生じます。</p>
-
-<pre class="brush: js">const name = "John";
-// 'el' を HTML の DOM 要素と想定します
-el.innerHTML = name; // この場合は無害
-
-// ...
-
-name = "&lt;script&gt;alert('I am John in an annoying alert!')&lt;/script&gt;";
-el.innerHTML = name; // この場合は無害</pre>
-
-<p>これは{{interwiki("wikipedia", "クロスサイトスクリプティング")}}攻撃のように見えますが、結果的には無害です。 HTML5 では <code>innerHTML</code> で挿入された {{HTMLElement("script")}} タグは<a href="https://www.w3.org/TR/2008/WD-html5-20080610/dom.html#innerhtml0">実行するべきではない</a>と定義しているからです。</p>
-
-<p>しかし、次のように {{HTMLElement("script")}} を使わずに JavaScript を実行する方法もあるので、制御することができない文字列を設定するために <code>innerHTML</code> を使用するたびに、セキュリティリスクは残ります。</p>
-
-<pre class="brush: js">const name = "&lt;img src='x' onerror='alert(1)'&gt;";
-el.innerHTML = name; // アラートが表示される</pre>
-
-<p>このため、プレーンテキストを挿入するときには <code>innerHTML</code> を使用せず、代わりに {{domxref("Node.textContent")}} を使用することをお勧めします。これは渡されたコンテンツを HTML として解釈するのではなく、生テキストとして挿入します。</p>
-
-<div class="warning">
-<p><strong>警告:</strong> プロジェクトに対して何らかの形のセキュリティレビューが行われる場合、 <code>innerHTML</code> は多くの場合、コードが拒絶される結果になります。例えば、<a href="/ja/docs/Mozilla/Add-ons/WebExtensions">ブラウザー拡張機能</a>の中で <a href="https://wiki.mozilla.org/Add-ons/Reviewers/Guide/Reviewing#Step_2:_Automatic_validation"><code>innerHTML</code> を使用した場合</a>、拡張機能を <a href="https://addons.mozilla.org/">addons.mozilla.org</a> に提出すると、自動レビュープロセスを通過できないでしょう。</p>
-</div>
-
-<h2 id="Example">例</h2>
-
-<p>この例は <code>innerHTML</code> を使用して、ウェブページ上のボックス内にメッセージを記録するメカニズムを作成します。</p>
-
-<h3 id="JavaScript">JavaScript</h3>
-
-<pre class="brush: js">function log(msg) {
- var logElem = document.querySelector(".log");
-
- var time = new Date();
- var timeStr = time.toLocaleTimeString();
-  logElem.innerHTML += timeStr + ": " + msg + "&lt;br/&gt;";
-}
-
-log("Logging mouse events inside this container...");
-</pre>
-
-<p><code>log()</code> 関数は {{jsxref("Date")}} オブジェクトから {{jsxref("Date.toLocaleTimeString", "toLocaleTimeString()")}} を使用して現在時刻を取得し、タイムスタンプとメッセージテキストから成る文字列を構築してログ出力を生成します。それから <code>"log"</code> クラスのボックスにメッセージを追加します。</p>
-
-<p>{{domxref("MouseEvent")}} ベースのイベント ({{event("mousedown")}}, {{event("click")}}, {{event("mouseenter")}} など) についての情報を記録する第二のメソッドを追加します。</p>
-
-<pre class="brush: js">function logEvent(event) {
- var msg = "Event &lt;strong&gt;" + event.type + "&lt;/strong&gt; at &lt;em&gt;" +
- event.clientX + ", " + event.clientY + "&lt;/em&gt;";
- log(msg);
-}</pre>
-
-<p>それから、これをログを収めるボックスの様々なマウスイベントのイベントハンドラーとして登録します。</p>
-
-<pre class="brush: js">var boxElem = document.querySelector(".box");
-
-boxElem.addEventListener("mousedown", logEvent);
-boxElem.addEventListener("mouseup", logEvent);
-boxElem.addEventListener("click", logEvent);
-boxElem.addEventListener("mouseenter", logEvent);
-boxElem.addEventListener("mouseleave", logEvent);</pre>
-
-<h3 id="HTML">HTML</h3>
-
-<p>この例の HTML はとても単純です。</p>
-
-<pre class="brush: html">&lt;div class="box"&gt;
- &lt;div&gt;&lt;strong&gt;Log:&lt;/strong&gt;&lt;/div&gt;
- &lt;div class="log"&gt;&lt;/div&gt;
-&lt;/div&gt;</pre>
-
-<p><code>"box"</code> クラスが付いた {{HTMLElement("div")}} は、単なるレイアウト用途のコンテナーであり、内容とその周りのボックスを表します。クラスが <code>"log"</code> である <code>&lt;div&gt;</code> は、ログテキスト自身のコンテナーです。</p>
-
-<h3 id="CSS">CSS</h3>
-
-<p>以下の CSS が例の内容をスタイル付けします。</p>
-
-<pre class="brush: css">.box {
- width: 600px;
- height: 300px;
- border: 1px solid black;
- padding: 2px 4px;
- overflow-y: scroll;
- overflow-x: auto;
-}
-
-.log {
- margin-top: 8px;
- font-family: monospace;
-}</pre>
-
-<h3 id="Result">結果</h3>
-
-<p>結果の内容はこのように見えます。マウスが移動してボックスを出入りしたり、中でクリックしたりすると、ログが出力されるのを見ることができます。</p>
-
-<p>{{EmbedLiveSample("Example", 640, 350)}}</p>
-
-<h2 id="Specifications">仕様書</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">状態</th>
- <th scope="col">備考</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('DOM Parsing', '#dom-element-innerhtml', 'Element.innerHTML')}}</td>
- <td>{{Spec2('DOM Parsing')}}</td>
- <td>初回定義</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat}}</p>
-
-<h2 id="See_also">関連情報</h2>
-
-<ul>
- <li>{{domxref("Node.textContent")}} および {{domxref("HTMLElement.innerText")}}</li>
- <li>{{domxref("Element.insertAdjacentHTML()")}}</li>
- <li>HTML を解析して DOM ツリーへ入れる: {{domxref("DOMParser")}}</li>
- <li>XML または HTML をシリアライズして DOM ツリーへ入れる: {{domxref("XMLSerializer")}}</li>
-</ul>
diff --git a/files/ja/web/api/element/innerhtml/index.md b/files/ja/web/api/element/innerhtml/index.md
new file mode 100644
index 0000000000..f3e54ca72c
--- /dev/null
+++ b/files/ja/web/api/element/innerhtml/index.md
@@ -0,0 +1,245 @@
+---
+title: Element.innerHTML
+slug: Web/API/Element/innerHTML
+tags:
+ - API
+ - DOM
+ - DOM Parsing
+ - Element
+ - Parsing HTML
+ - プロパティ
+ - リファレンス
+ - innerHTML
+ - プロパティ
+browser-compat: api.Element.innerHTML
+translation_of: Web/API/Element/innerHTML
+---
+{{APIRef("DOM")}}
+
+{{domxref("Element")}} オブジェクトの **`innerHTML`** プロパティは、要素内の HTML または XML のマークアップを取得したり設定したりします。
+
+要素の内容を置き換えるというより、文書に HTML を挿入するという場合には、 {{domxref("Element.insertAdjacentHTML", "insertAdjacentHTML()")}} メソッドを使用してください。
+
+## 構文
+
+```js
+const content = element.innerHTML;
+
+element.innerHTML = content;
+```
+
+### 値
+
+要素の子孫を HTML にシリアライズしたものを含んだ {{domxref("DOMString")}} です。 `innerHTML` に値を設定すると、要素のすべての子孫を削除して、 _htmlString_ の文字列で与えられた HTML を解釈して構築されたノードに置き換えます。
+
+### 例外
+
+- `SyntaxError` {{domxref("DOMException")}}
+ - : 正しくない形の HTML の文字列を使用して `innerHTML` の値を設定しようとした場合に発生します。
+- `NoModificationAllowedError` {{domxref("DOMException")}}
+ - : 親が {{domxref("Document")}} であるノードに HTML を挿入しようとした場合に発生します。
+
+## 使用上のメモ
+
+`innerHTML` プロパティは、ページの現在の HTML ソースを、ページが最初に読み込まれてから行われたあらゆる変更を含めて、見るために利用することができます。
+
+### 要素の HTML コンテンツの読み取り
+
+`innerHTML` を読み取ると、ユーザーエージェントが要素の子孫で構成される HTML または XML の断片をシリアライズします。結果として文字列が返ります。
+
+```js
+let contents = myElement.innerHTML;
+```
+
+これで、 HTML のコンテンツのノードの HTML マークアップを見ることができます。
+
+> **Note:** 返される HTML または XML の断片は、現在の要素の中身に基づいて生成されますので、返される断片のマークアップや整形方法は、元のページのマークアップと同じであるとは限りません。
+
+### 要素の中身の置き換え
+
+`innerHTML` の値を設定することで、既存の要素の内容を新しい内容に置き換えることが簡単にできます。
+
+> **Note:** 挿入される文字列に悪意のある内容が含まれる可能性がある場合、[セキュリティ上のリスク](#セキュリティの考慮事項)になります。
+> ユーザーが提供したデータを挿入する場合は、 {{domxref("Element.SetHTML()")}} を使用するよう常に検討してください。こちらは挿入する前に無害化を行います。
+
+例えば、文書の {{domxref("Document.body", "body")}} 属性の内容を消去することで、文書の内容全体を消去することができます。
+
+```js
+document.body.innerHTML = "";
+```
+
+この例は文書の現在の HTML マークアップを走査し、 `"<"` の文字を HTML エンティティの `"&lt;"` に置き換え、それによって本質的に HTML を生テキストに変換します。そしてこれを {{HTMLElement("pre")}} で囲みます。そして、 `innerHTML` の値をこの新しい文字列に変更します。結果として、文書の内容がページ全体のソースコードの表示に置き換わります。
+
+```js
+document.documentElement.innerHTML = "<pre>" +
+ document.documentElement.innerHTML.replace(/</g,"&lt;") +
+ "</pre>";
+```
+
+#### 操作の詳細
+
+`innerHTML` に値を設定すると、正確には何が起きるのでしょうか?これを行うと、ユーザーエージェントは以下のステップを追います。
+
+1. 指定された値は (文書型に基づいて) HTML または XML として解釈され、新しい一連の要素の DOM ノードを表す {{domxref("DocumentFragment")}} オブジェクトの中に結果が入れられます。
+2. 中身を置き換えようとしている要素が {{HTMLElement("template")}} 要素である場合は、 `<template>` 要素の {{domxref("HTMLTemplateElement.content", "content")}} 属性を、ステップ 1 で生成された新しい `DocumentFragment` で置き換えます。
+3. その他の要素はすべて、要素の内容を新しい `DocumentFragment` のノードで置き換えます。
+
+### HTML を要素に適用
+
+`innerHTML` に値を設定すると、既存の要素の一つに新しい内容物を追加します。
+
+例えば、新しいリスト項目 (`<li>`) を既存のリスト (`<ul>`) に追加することができます。
+
+#### HTML
+
+```html
+<ul id="list">
+ <li><a href="#">Item 1</a></li>
+ <li><a href="#">Item 2</a></li>
+ <li><a href="#">Item 3</a></li>
+</ul>
+```
+
+#### JavaScript
+
+```js
+const list = document.getElementById("list");
+
+list.innerHTML += `<li><a href="#">Item ${list.children.length + 1}</a></li>`;
+```
+
+なお、 `innerHTML` を使用して HTML 要素を追加すると(例えば `el.innerHTML += "<a href='...'>link</a>"`)、以前設定したイベントリスナーを取り除くことになります。
+つまり、この方法で HTML 要素を追加すると、以前設定したイベントリスナーで待ち受けすることができなくなります。
+
+### セキュリティの考慮事項
+
+ウェブページにテキストを挿入するために `innerHTML` を使用している例は珍しくありません。これがサイト上の攻撃ベクトルになる可能性があり、潜在的なセキュリティリスクが生じます。
+
+```js
+const name = "John";
+// 'el' を HTML の DOM 要素と想定します
+el.innerHTML = name; // この場合は無害
+
+// ...
+
+name = "<script>alert('I am John in an annoying alert!')</script>";
+el.innerHTML = name; // この場合は無害
+```
+
+これは{{interwiki("wikipedia", "クロスサイトスクリプティング")}}攻撃のように見えますが、結果的には無害です。 HTML5 では `innerHTML` で挿入された {{HTMLElement("script")}} タグは[実行するべきではない](https://www.w3.org/TR/2008/WD-html5-20080610/dom.html#innerhtml0)と定義しているからです。
+
+しかし、次のように {{HTMLElement("script")}} を使わずに JavaScript を実行する方法もあるので、制御することができない文字列を設定するために `innerHTML` を使用するたびに、セキュリティリスクは残ります。
+
+```js
+const name = "<img src='x' onerror='alert(1)'>";
+el.innerHTML = name; // アラートが表示される
+```
+
+このため、 `innerHTML` を使用する代わりに次のようにしてください。
+
+- {{domxref("Element.SetHTML()")}} で DOM に挿入する前にテキストを無害化する。
+- プレーンテキストを挿入する際には、代わりに {{domxref("Node.textContent")}} を使用する。これは渡されたコンテンツを HTML として解釈するのではなく、生のテキストとして挿入します。
+
+> **Warning:** プロジェクトに対して何らかの形のセキュリティレビューが行われた場合、 `innerHTML` は多くの場合で、コードが拒絶される結果になります。
+> 例えば、[ブラウザー拡張機能](/ja/docs/Mozilla/Add-ons/WebExtensions)の中で [`innerHTML` を使用した場合](https://wiki.mozilla.org/Add-ons/Reviewers/Guide/Reviewing#Step_2:_Automatic_validation)、拡張機能を [addons.mozilla.org](https://addons.mozilla.org/) に提出すると、自動レビュープロセスを通過できないでしょう。
+> 代替方法については、[ページへ外部コンテンツを安全に挿入する](/ja/docs/Mozilla/Add-ons/WebExtensions/Safely_inserting_external_content_into_a_page)を参照してください。
+
+## 例
+
+この例は `innerHTML` を使用して、ウェブページ上のボックス内にメッセージを記録するメカニズムを作成します。
+
+### JavaScript
+
+```js
+function log(msg) {
+ var logElem = document.querySelector(".log");
+
+ var time = new Date();
+ var timeStr = time.toLocaleTimeString();
+ logElem.innerHTML += timeStr + ": " + msg + "<br/>";
+}
+
+log("Logging mouse events inside this container...");
+```
+
+`log()` 関数は {{jsxref("Date")}} オブジェクトから {{jsxref("Date.toLocaleTimeString", "toLocaleTimeString()")}} を使用して現在時刻を取得し、タイムスタンプとメッセージテキストから成る文字列を構築してログ出力を生成します。それから `"log"` クラスのボックスにメッセージを追加します。
+
+{{domxref("MouseEvent")}} ベースのイベント ({{domxref("Element/mousedown_event", "mousedown")}}, {{domxref("Element/click_event", "click")}}, {{domxref("Element/mouseenter_event", "mouseenter")}} など) についての情報を記録する第二のメソッドを追加します。
+
+```js
+function logEvent(event) {
+ var msg = "Event <strong>" + event.type + "</strong> at <em>" +
+ event.clientX + ", " + event.clientY + "</em>";
+ log(msg);
+}
+```
+
+それから、これをログを収めるボックスの様々なマウスイベントのイベントハンドラーとして登録します。
+
+```js
+var boxElem = document.querySelector(".box");
+
+boxElem.addEventListener("mousedown", logEvent);
+boxElem.addEventListener("mouseup", logEvent);
+boxElem.addEventListener("click", logEvent);
+boxElem.addEventListener("mouseenter", logEvent);
+boxElem.addEventListener("mouseleave", logEvent);
+```
+
+### HTML
+
+この例の HTML はとても単純です。
+
+```html
+<div class="box">
+ <div><strong>Log:</strong></div>
+ <div class="log"></div>
+</div>
+```
+
+`"box"` クラスが付いた {{HTMLElement("div")}} は、単なるレイアウト用途のコンテナーであり、内容とその周りのボックスを表します。
+クラスが `"log"` である `<div>` は、ログテキスト自身のコンテナーです。
+
+### CSS
+
+以下の CSS が例の内容をスタイル付けします。
+
+```css
+.box {
+ width: 600px;
+ height: 300px;
+ border: 1px solid black;
+ padding: 2px 4px;
+ overflow-y: scroll;
+ overflow-x: auto;
+}
+
+.log {
+ margin-top: 8px;
+ font-family: monospace;
+}
+```
+
+### 結果
+
+結果の内容はこのように見えます。
+マウスを移動してボックスを出入りさせたり、中でクリックしたりすると、ログが出力されるのを見ることができます。
+
+{{EmbedLiveSample("Example", 640, 350)}}
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Node.textContent")}} および {{domxref("HTMLElement.innerText")}}
+- {{domxref("Element.insertAdjacentHTML()")}}
+- {{domxref("Element.outerHTML")}}
+- {{domxref("Element.setHTML")}}
+- HTML または XML を解釈して DOM ツリーへ: {{domxref("DOMParser")}}
+- DOM ツリーを XML 文字列へシリアライズ: {{domxref("XMLSerializer")}}
diff --git a/files/ja/web/api/element/localname/index.html b/files/ja/web/api/element/localname/index.html
deleted file mode 100644
index b92152fbfa..0000000000
--- a/files/ja/web/api/element/localname/index.html
+++ /dev/null
@@ -1,87 +0,0 @@
----
-title: Element.localName
-slug: Web/API/Element/localName
-tags:
-- API
-- DOM
-- NeedsBrowserCompatibility
-- NeedsMobileBrowserCompatibility
-- Property
-- Reference
-browser-compat: api.Element.localName
-translation_of: Web/API/Element/localName
----
-<div>{{APIRef("DOM")}}</div>
-
-<p><strong><code>Element.localName</code></strong> は読み取り専用プロパティで、要素の修飾名のローカル部分を返します。</p>
-
-<h2 id="Syntax">構文</h2>
-
-<pre class="brush: js"><var>name</var> = <var>element</var>.localName
-</pre>
-
-<h3 id="Return_value">返値</h3>
-
-<p>要素の修飾名の、ローカル部分を示す {{domxref("DOMString")}} です。
-</p>
-
-<h2 id="Example">例</h2>
-
-<p>(<code>text/xml</code> や <code>application/xhtml+xml</code> のような、XML のコンテンツタイプで送出される必要があります。)</p>
-
-<pre class="brush:xml">&lt;html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:svg="http://www.w3.org/2000/svg"&gt;
-&lt;head&gt;
- &lt;script type="application/javascript"&gt;&lt;![CDATA[
- function test() {
- var text = document.getElementById('text');
- var circle = document.getElementById('circle');
-
- text.value = "&lt;svg:circle&gt; has:\n" +
- "localName = '" + circle.localName + "'\n" +
- "namespaceURI = '" + circle.namespaceURI + "'";
- }
- ]]&gt;&lt;/script&gt;
-&lt;/head&gt;
-&lt;body onload="test()"&gt;
- &lt;svg:svg version="1.1"
- width="100px" height="100px"
- viewBox="0 0 100 100"&gt;
- &lt;svg:circle cx="50" cy="50" r="30" style="fill:#aaa" id="circle"/&gt;
- &lt;/svg:svg&gt;
- &lt;textarea id="text" rows="4" cols="55"/&gt;
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-
-<h2 id="Notes">注</h2>
-
-<p>ノードのローカル名とは、ノードの修飾名の、コロンの後に続く部分です。 XML において修飾名は、一般に特定の XML 文書の名前空間の一部として使われます。例えば、<code>ecomm:partners</code> という修飾名において、 <code>partners</code> はローカル名、<code>ecomm</code> は接頭辞です。</p>
-
-<pre class="brush:xml">&lt;ecomm:business id="soda_shop" type="brick_n_mortar" xmlns:ecomm="http://example.com/ecomm"&gt;
- &lt;ecomm:partners&gt;
- &lt;ecomm:partner id="1001"&gt;Tony's Syrup Warehouse
- &lt;/ecomm:partner&gt;
- &lt;/ecomm:partner&gt;
-&lt;/ecomm:business&gt;
-</pre>
-
-<div class="note">
-<p><strong>注: </strong>{{Gecko("1.9.2")}} 以前、このプロパティは、HTML DOM における HTML 要素ではローカル名を大文字で返していました(XML DOM における XHTML 要素とは対照的に)。最新バージョンでは HTML5 に従い、このプロパティは内部の DOM ストレージの場合、 HTML DOM における HTML要素と XHTML DOM における XHTML要素のいずれも、小文字で返します。{{domxref("element.tagName","tagName")}} プロパティは引き続き、 HTML DOM における HTML 要素では大文字で返します。</p>
-</div>
-
-<h2 id="Specifications">仕様書</h2>
-
-{{Specifications}}
-
-<h2 id="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat}}</p>
-
-<h2 id="See_also">関連情報</h2>
-
-<ul>
- <li>{{domxref("Element.namespaceURI")}}</li>
- <li>{{domxref("Element.prefix")}}</li>
- <li>{{domxref("Attr.localName")}}</li>
-</ul>
diff --git a/files/ja/web/api/element/localname/index.md b/files/ja/web/api/element/localname/index.md
new file mode 100644
index 0000000000..c676607ad5
--- /dev/null
+++ b/files/ja/web/api/element/localname/index.md
@@ -0,0 +1,85 @@
+---
+title: Element.localName
+slug: Web/API/Element/localName
+tags:
+- API
+- DOM
+- NeedsBrowserCompatibility
+- NeedsMobileBrowserCompatibility
+- プロパティ
+- リファレンス
+browser-compat: api.Element.localName
+translation_of: Web/API/Element/localName
+---
+{{APIRef("DOM")}}
+
+**`Element.localName`** は読み取り専用プロパティで、要素の修飾名のローカル部分を返します。
+
+## 構文
+
+```js
+name = element.localName
+```
+
+### 返値
+
+要素の修飾名の、ローカル部分を示す {{domxref("DOMString")}} です。
+
+## 例
+
+(`text/xml` や `application/xhtml+xml` のような、XML のコンテンツタイプで送出される必要があります。)
+
+```xml
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:svg="http://www.w3.org/2000/svg">
+<head>
+ <script type="application/javascript"><![CDATA[
+ function test() {
+ var text = document.getElementById('text');
+ var circle = document.getElementById('circle');
+
+ text.value = "<svg:circle> has:\n" +
+ "localName = '" + circle.localName + "'\n" +
+ "namespaceURI = '" + circle.namespaceURI + "'";
+ }
+ ]]></script>
+</head>
+<body onload="test()">
+ <svg:svg version="1.1"
+ width="100px" height="100px"
+ viewBox="0 0 100 100">
+ <svg:circle cx="50" cy="50" r="30" style="fill:#aaa" id="circle"/>
+ </svg:svg>
+ <textarea id="text" rows="4" cols="55"/>
+</body>
+</html>
+```
+
+## メモ
+
+ノードのローカル名とは、ノードの修飾名の、コロンの後に続く部分です。 XML において修飾名は、一般に特定の XML 文書の名前空間の一部として使われます。例えば、`ecomm:partners` という修飾名において、 `partners` はローカル名、`ecomm` は接頭辞です。
+
+```xml
+<ecomm:business id="soda_shop" type="brick_n_mortar" xmlns:ecomm="http://example.com/ecomm">
+ <ecomm:partners>
+ <ecomm:partner id="1001">Tony's Syrup Warehouse
+ </ecomm:partner>
+ </ecomm:partner>
+</ecomm:business>
+```
+
+> **Note:** {{Gecko("1.9.2")}} 以前、このプロパティは、HTML DOM における HTML 要素ではローカル名を大文字で返していました(XML DOM における XHTML 要素とは対照的に)。最新バージョンでは HTML5 に従い、このプロパティは内部の DOM ストレージの場合、 HTML DOM における HTML 要素と XHTML DOM における XHTML 要素のいずれも、小文字で返します。{{domxref("element.tagName","tagName")}} プロパティは引き続き、 HTML DOM における HTML 要素では大文字で返します。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Element.namespaceURI")}}
+- {{domxref("Element.prefix")}}
+- {{domxref("Attr.localName")}}
diff --git a/files/ja/web/api/element/namespaceuri/index.html b/files/ja/web/api/element/namespaceuri/index.html
deleted file mode 100644
index ebf84fb77c..0000000000
--- a/files/ja/web/api/element/namespaceuri/index.html
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: Node.namespaceURI
-slug: Web/API/Element/namespaceURI
-tags:
- - DOM
- - Gecko
- - Gecko DOM Reference
- - 要更新
-translation_of: Web/API/Node/namespaceURI
-original_slug: Web/API/Node/namespaceURI
----
-<p>{{ ApiRef() }}</p>
-<h3 id=".E6.A6.82.E8.A6.81" name=".E6.A6.82.E8.A6.81">概要</h3>
-<p>ノードの名前空間 URI か、もし指定されていなければ <code>null</code>(読み込み専用)。</p>
-<h3 id=".E6.A7.8B.E6.96.87" name=".E6.A7.8B.E6.96.87">構文</h3>
-<pre class="eval"><i>namespace</i> =<i>node</i>.namespaceURI
-</pre>
-<ul>
- <li><code>namespace</code> は指定されたノードの名前空間 URI を表す文字列です。</li>
-</ul>
-<h3 id=".E4.BE.8B" name=".E4.BE.8B">例</h3>
-<p>この断片では、ノードの <a href="/ja/DOM/element.localName">localName</a> と <code>namespaceURI</code> が試験されます。もし、<code>namespaceURI</code> が XUL の名前空間を返し、<code>localName</code> が "browser" を返せば、そのノードは XUL の <code>&lt;browser/&gt;</code> と理解されます。</p>
-<pre>if (node.localName == "browser" &amp;&amp;
- node.namespaceURI == "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul") {
- // これは XUL browser です。
-}
-</pre>
-<h3 id=".E6.B3.A8.E8.A8.98" name=".E6.B3.A8.E8.A8.98">注記</h3>
-<p>これは、スコープ中の名前空間宣言の調査を基づいた、名前空間検索の結果である、計算された値ではありません。単に作成時に与えられた名前空間 URI です。</p>
-<p><code>ELEMENT_NODE</code> と <code>ATTRIBUTE_NODE</code> 以外の<a href="/ja/DOM/element.nodeType">種類</a>全てに属すノードと, <code><a href="/ja/DOM/document.createElement">document.createElement</a></code> のような DOM Level 1 のメソッドで作られたノードでは、常に <code>namespaceURI</code> は <code>null</code> です。</p>
-<p>DOM Level 2 の <a href="/ja/DOM/document.createElementNS">document.createElementNS</a> メソッドを使うことで、特定の <code>namespaceURI</code> を持った要素を作ることができます。</p>
-<p><a class="external" href="http://www.w3.org/TR/xml-names11/">Namespaces in XML</a> によれば、属性はその要素から名前空間を継承しません。もし属性が特定の名前空間を与えられていなければ、その属性は名前空間をもちません。</p>
-<h3 id=".E4.BB.95.E6.A7.98" name=".E4.BB.95.E6.A7.98">仕様</h3>
-<p><a class="external" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-NodeNSname">DOM Level 2 Core: namespaceURI</a></p>
-<p><a class="external" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#Namespaces-Considerations">DOM Level 2 Core: XML Namespaces</a></p>
diff --git a/files/ja/web/api/element/namespaceuri/index.md b/files/ja/web/api/element/namespaceuri/index.md
new file mode 100644
index 0000000000..cd898c602d
--- /dev/null
+++ b/files/ja/web/api/element/namespaceuri/index.md
@@ -0,0 +1,58 @@
+---
+title: Element.namespaceURI
+slug: Web/API/Element/namespaceURI
+tags:
+ - API
+ - DOM
+ - NeedsBrowserCompatibility
+ - NeedsMobileBrowserCompatibility
+ - プロパティ
+ - リファレンス
+browser-compat: api.Element.namespaceURI
+translation_of: Web/API/Element/namespaceURI
+original_slug: Web/API/Node/namespaceURI
+---
+{{APIRef("DOM")}}
+
+**`Element.namespaceURI`** は読み取り専用のプロパティで、この要素の名前空間 URI を返します。この要素が名前空間に所属していない場合は `null` を返します。
+
+## 構文
+
+```js
+namespace = element.namespaceURI
+```
+
+## 例
+
+このスニペットでは、ある要素が {{domxref("Element.localName", "localName")}} と `namespaceURI` で調べます。この `namespaceURI` は XUL の名前空間を返し、 `localName` は "browser" を返すので、このノードは XUL の `<browser/>` と解釈されます。
+
+```js
+if (element.localName == "browser" &&
+ element.namespaceURI == "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul") {
+ // これは XUL browser です
+}
+```
+
+## メモ
+
+これは、スコープ内の名前空間宣言を調べて名前空間を検索した結果であり、計算値ではありません。ノードの名前空間 URI は、ノードの生成時に凍結されます。
+
+Firefox 3.5 以前では、 HTML 文書中の HTML 要素の名前空間 URI は `null` です。それ以降のバージョンでは、 HTML5 に準拠し、 XHTML と同様に [`http://www.w3.org/1999/xhtml`](https://www.w3.org/1999/xhtml) となります。
+
+DOM Level 2 のメソッド [document.createElementNS](/en-US/docs/Web/API/Document/createElementNS) を用いると、指定した `namespaceURI` を持つ要素を作成することができる。
+
+DOM はそれ自体で名前空間の検証を行ったり強制したりすることはありません。必要な検証を行うのは DOM アプリケーションに任されています。また、一度特定の要素に関連付けられた名前空間接頭辞は、変更することができないことに注意しましょう。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Element.localName")}}
+- {{domxref("Element.prefix")}}
+- {{domxref("Attr.namespaceURI")}}
diff --git a/files/ja/web/api/element/nextelementsibling/index.md b/files/ja/web/api/element/nextelementsibling/index.md
new file mode 100644
index 0000000000..ea24a59878
--- /dev/null
+++ b/files/ja/web/api/element/nextelementsibling/index.md
@@ -0,0 +1,59 @@
+---
+title: Element.nextElementSibling
+slug: Web/API/Element/nextElementSibling
+tags:
+ - API
+ - DOM
+ - Element
+ - プロパティ
+browser-compat: api.Element.nextElementSibling
+translation_of: Web/API/Element/nextElementSibling
+---
+{{APIRef("DOM")}}
+
+**`Element.nextElementSibling`** は読み取り専用のプロパティで、この要素の親の子リスト内ですぐ次にある要素を返します。このノードがリストの最後のノードであった場合は `null` を返します。
+
+## 構文
+
+```js
+// ゲッター
+element = el.nextElementSibling;
+
+// セッターなし。読み取り専用プロパティ
+```
+
+## 例
+
+```html
+<div id="div-01">Here is div-01</div>
+<div id="div-02">Here is div-02</div>
+
+<script type="text/javascript">
+ let el = document.getElementById('div-01').nextElementSibling;
+ console.log('Siblings of div-01:');
+ while (el) {
+ console.log(el.nodeName);
+ el = el.nextElementSibling;
+ }
+</script>
+```
+
+この例は読み込み時に、コンソールに以下のような出力を行います。
+
+```
+Siblings of div-01:
+DIV
+SCRIPT
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Element.previousElementSibling")}}
diff --git a/files/ja/web/api/element/outerhtml/index.html b/files/ja/web/api/element/outerhtml/index.html
deleted file mode 100644
index 1b476879bf..0000000000
--- a/files/ja/web/api/element/outerhtml/index.html
+++ /dev/null
@@ -1,118 +0,0 @@
----
-title: Element.outerHTML
-slug: Web/API/Element/outerHTML
-tags:
- - API
- - DOM
- - DOM Parsing
- - Element
- - Parsing
- - Property
- - Reference
- - Serialization
- - Serializing
- - outerHTML
-translation_of: Web/API/Element/outerHTML
----
-<div>{{APIRef("DOM")}}</div>
-
-<p><strong><code>outerHTML</code></strong> は {{ domxref("Element") }} DOM インターフェイスの属性で、要素とその子孫を含む部分の HTML がシリアライズされたものを取得します。設定することで指定された文字列を解釈したノードの要素に置き換えることができます。</p>
-
-<p>要素の内容のみの HTML 表現を取得する場合や、要素の内容を置き換える場合であれば、代わりに {{domxref("Element.innerHTML", "innerHTML")}} プロパティを使用してください。</p>
-
-<h2 id="Syntax" name="Syntax">構文</h2>
-
-<pre class="syntaxbox">var <var>content</var> = <var>element</var>.outerHTML;
-
-<var>element</var>.outerHTML = <var>htmlString</var>;
-</pre>
-
-<h3 id="Value" name="Value">値</h3>
-
-<p><code>outerHTML</code> の値を読み取ると、 <code><var>element</var></code> およびその子孫の HTML シリアライズを含む {{domxref("DOMString")}} が返されます。 <code>outerHTML</code> の値を設定すると、その要素とそのすべての子孫を、指定された <code><var>htmlString</var></code> を解釈して構築された新しい DOM ツリーで置き換えます。</p>
-
-<h3 id="Exceptions" name="Exceptions">例外</h3>
-
-<dl>
- <dt><code>SyntaxError</code></dt>
- <dd><code>outerHTML</code> に正しくない HTML の文字列を使用して設定しようとした場合。</dd>
- <dt><code>NoModificationAllowedError</code></dt>
- <dd><code>outerHTML</code> を {{domxref("Document")}} の直接の子である要素、たとえば {{domxref("Document.documentElement")}} に対して設定しようとした場合。</dd>
-</dl>
-
-<h2 id="Examples" name="Examples">例</h2>
-
-<p>要素の <code>outerHTML</code> プロパティの値を得る例を示します。</p>
-
-<pre class="brush: js">// HTML:
-// &lt;div id="d"&gt;&lt;p&gt;Content&lt;/p&gt;&lt;p&gt;Further Elaborated&lt;/p&gt;&lt;/div&gt;
-
-d = document.getElementById("d");
-console.log(d.outerHTML);
-
-// 次の文字列 '&lt;div id="d"&gt;&lt;p&gt;Content&lt;/p&gt;&lt;p&gt;Further Elaborated&lt;/p&gt;&lt;/div&gt;'
-// が、コンソールウィンドウに出力されます。
-</pre>
-
-<p>次の例では、 <code>outerHTML</code> プロパティに値を設定し、ノードを置換します。</p>
-
-<pre class="brush: js">// HTML:
-// &lt;div id="container"&gt;&lt;div id="d"&gt;This is a div.&lt;/div&gt;&lt;/div&gt;
-
-container = document.getElementById("container");
-d = document.getElementById("d");
-console.log(container.firstChild.nodeName); // "DIV" が記録される
-
-d.outerHTML = "&lt;p&gt;This paragraph replaced the original div.&lt;/p&gt;";
-console.log(container.firstChild.nodeName); // "P" が記録される
-
-// #d の div 要素はもはや文書ツリーの一部ではなく、
-// 新たな段落に置き換えられました。
-</pre>
-
-<h2 id="Notes" name="Notes">メモ</h2>
-
-<p>要素が親要素を持たない場合、その <code>outerHTML</code> プロパティに値を設定してもその要素や子孫は変更されません。多くのブラウザーでは例外も発生します。以下に例を示します。</p>
-
-<pre class="brush: js">var div = document.createElement("div");
-div.outerHTML = "&lt;div class=\"test\"&gt;test&lt;/div&gt;";
-console.log(div.outerHTML); // output: "&lt;div&gt;&lt;/div&gt;"</pre>
-
-<p>また、文書の中で要素が置換された場合も、 <code>outerHTML</code> プロパティが設定された変数は、引き続きオリジナルの要素への参照を保持しています。</p>
-
-<pre class="brush: js">var p = document.getElementsByTagName("p")[0];
-console.log(p.nodeName); // "P" を表示
-p.outerHTML = "&lt;div&gt;This div replaced a paragraph.&lt;/div&gt;";
-console.log(p.nodeName); // "P" のまま
-</pre>
-
-<h2 id="Specification" name="Specification">仕様書</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">状態</th>
- <th scope="col">備考</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('DOM Parsing', '#outerhtml', 'Element.outerHTML')}}</td>
- <td>{{ Spec2('DOM Parsing') }}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2>
-
-<p>{{Compat("api.Element.outerHTML")}}</p>
-
-<h2 id="See_also" name="See_also">関連情報</h2>
-
-<ul>
- <li>DOM ツリーを XML または HTML にシリアライズ: {{domxref("XMLSerializer")}}</li>
- <li>XML または HTML を DOM ツリーに解釈: {{domxref("DOMParser")}}</li>
- <li>{{domxref("HTMLElement.outerText")}}</li>
-</ul>
diff --git a/files/ja/web/api/element/outerhtml/index.md b/files/ja/web/api/element/outerhtml/index.md
new file mode 100644
index 0000000000..3b6278d25e
--- /dev/null
+++ b/files/ja/web/api/element/outerhtml/index.md
@@ -0,0 +1,132 @@
+---
+title: Element.outerHTML
+slug: Web/API/Element/outerHTML
+tags:
+ - API
+ - DOM
+ - DOM 解釈
+ - Element
+ - NeedsMobileBrowserCompatibility
+ - Parsing
+ - プロパティ
+ - リファレンス
+ - シリアライズ
+ - Serializing
+ - outerHTML
+browser-compat: api.Element.outerHTML
+translation_of: Web/API/Element/outerHTML
+---
+{{APIRef("DOM")}}
+
+**`outerHTML`** は {{ domxref("Element") }} DOM インターフェイスの属性で、要素とその子孫を含む部分の HTML がシリアライズされたものを取得します。設定することで、指定された文字列を解釈したノードの要素に置き換えることができます。
+
+要素の内容のみの HTML 表現を取得する場合や、要素の内容を置き換える場合であれば、代わりに {{domxref("Element.innerHTML", "innerHTML")}} プロパティを使用してください。
+
+## 構文
+
+```js
+var content = element.outerHTML;
+
+element.outerHTML = htmlString;
+```
+
+### 値
+
+`outerHTML` の値を読み取ると、 `element` およびその子孫を HTML にシリアライズしたものを含む {{domxref("DOMString")}} が返されます。 `outerHTML` の値を設定すると、その要素とそのすべての子孫を、指定された `htmlString` を解釈して構築された新しい DOM ツリーで置き換えます。
+
+### 例外
+
+- `SyntaxError` {{domxref("DOMException")}}
+ - : `outerHTML` に有効ではない HTML の文字列を使用して設定しようとした場合に発生します。
+- `NoModificationAllowedError` {{domxref("DOMException")}}
+ - : `outerHTML` を {{domxref("Document")}} の直接の子である要素、たとえば {{domxref("Document.documentElement")}} に対して設定しようとした場合。
+
+## 例
+
+要素の `outerHTML` プロパティの値を得る例を示します。
+
+### HTML
+
+```html
+<div id="d">
+ <p>Content</p>
+ <p>Further Elaborated</p>
+</div>
+```
+
+### Javascript
+
+```js
+var d = document.getElementById("d");
+console.log(d.outerHTML);
+
+// 文字列 '<div id="d"><p>Content</p><p>Further Elaborated</p></div>'
+// がコンソールウィンドウに書き出されます。
+```
+
+次の例では、 `outerHTML` プロパティに値を設定し、ノードを置換します。
+
+### HTML
+
+```html
+<div id="container">
+ <div id="d">これは div です。</div>
+</div>
+```
+
+### Javascript
+
+```js
+var container = document.getElementById("container");
+var d = document.getElementById("d");
+
+console.log(container.firstElementChild.nodeName); // "DIV" と出力
+
+d.outerHTML = "<p>この段落は元の div を置き換えたものです。</p>";
+
+console.log(container.firstElementChild.nodeName); // "P" と出力
+
+// #d の div 要素は文書ツリーの一部ではなくなり、
+// 新たな段落に置き換えられました。
+```
+
+## メモ
+
+要素が親要素を持たない場合、その `outerHTML` プロパティに値を設定してもその要素や子孫は変更されません。多くのブラウザーでは例外も発生します。以下に例を示します。
+
+```js
+var div = document.createElement("div");
+div.outerHTML = "<div class=\"test\">test</div>";
+console.log(div.outerHTML); // output: "<div></div>"
+```
+
+また、文書の中で要素が置換された場合も、 `outerHTML` プロパティが設定された変数は、引き続きオリジナルの要素への参照を保持しています。
+
+```js
+var p = document.getElementsByTagName("p")[0];
+console.log(p.nodeName); // shows: "P"
+p.outerHTML = "<div>This div replaced a paragraph.</div>";
+console.log(p.nodeName); // still "P";
+```
+
+返値には HTML エスケープされた属性が入ります。
+
+```js
+var anc = document.createElement("a");
+anc.href = "https://developer.mozilla.org?a=b&c=d";
+console.log(anc.outerHTML); // output: "<a href='https://developer.mozilla.org?a=b&amp;c=d'></a>"
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- DOM ツリーを XML 文字列にシリアライズ: {{domxref("XMLSerializer")}}
+- XML または HTML を DOM ツリーに解釈: {{domxref("DOMParser")}}
+- {{domxref("HTMLElement.outerText")}}
diff --git a/files/ja/web/api/element/part/index.md b/files/ja/web/api/element/part/index.md
new file mode 100644
index 0000000000..ea93a70d1a
--- /dev/null
+++ b/files/ja/web/api/element/part/index.md
@@ -0,0 +1,59 @@
+---
+title: Element.part
+slug: Web/API/Element/part
+tags:
+ - API
+ - Element
+ - プロパティ
+ - リファレンス
+ - part
+browser-compat: api.Element.part
+---
+{{ ApiRef("DOM") }}
+
+**`part`** は {{domxref("Element")}} インターフェイスのプロパティで、この要素の部品識別子(すなわち `part` 属性を使用して設定されたもの)を {{domxref("DOMTokenList")}} で返します。これらはシャドウ DOM の部品を {{cssxref("::part")}} 擬似要素でスタイル付けするために使用することができます。
+
+## 構文
+
+```js
+let elementPartList = element.part
+```
+
+## 例
+
+以下は、 [shadow-part](https://mdn.github.io/web-components-examples/shadow-part/) の例から抜粋したものです。ここでは、 `part` 属性を使用してシャドウ部品を見つけ、 `part` プロパティを使用して各タブの部品識別子を変更し、タブがクリックされたときに正しいスタイルがアクティブなタブに適用されるようにしています。
+
+```js
+let tabs = [];
+let children = this.shadowRoot.children;
+
+for(let elem of children) {
+ if(elem.getAttribute('part')) {
+ tabs.push(elem);
+ }
+}
+
+tabs.forEach((tab) => {
+ tab.addEventListener('click', (e) => {
+ tabs.forEach((tab) => {
+ tab.part = 'tab';
+ })
+ e.target.part = 'tab active';
+ })
+
+ console.log(tab.part);
+})
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{cssxref("::part")}}
+- {{htmlattrxref("part")}}
diff --git a/files/ja/web/api/element/prefix/index.html b/files/ja/web/api/element/prefix/index.html
deleted file mode 100644
index b2baf67888..0000000000
--- a/files/ja/web/api/element/prefix/index.html
+++ /dev/null
@@ -1,48 +0,0 @@
----
-title: Element.prefix
-slug: Web/API/Element/prefix
-tags:
-- API
-- DOM
-- NeedsBrowserCompatibility
-- NeedsMobileBrowserCompatibility
-- Property
-- Reference
-browser-compat: api.Element.prefix
-translation_of: Web/API/Element/prefix
----
-<div>{{APIRef("DOM")}}</div>
-
-<p><code><strong>Element.prefix</strong></code> は読み取り専用プロパティで、指定された要素の名前空間の接頭辞を、接頭辞が指定されていない場合は <code>null</code> を返します。</p>
-
-<h2 id="Syntax">構文</h2>
-
-<pre class="brush: js"><var>string</var> = <var>element</var>.prefix
-</pre>
-
-<h2 id="Examples">例</h2>
-
-<p>次の例はコンソールに "x" を記録します。</p>
-
-<pre class="brush:xml">&lt;x:div onclick="console.log(this.prefix)"/&gt;
-</pre>
-
-<h2 id="Notes">注</h2>
-
-<p>これは、名前空間を認識するパーサーを使用しているとき、すなわち、文書が XML の MIME タイプで送信されたときのみ動作します。 HTML 文書では動作しません。</p>
-
-<h2 id="Specifications">仕様書</h2>
-
-{{Specifications}}
-
-<h2 id="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat}}</p>
-
-<h2 id="See_also">関連情報</h2>
-
-<ul>
- <li>{{domxref("Element.namespaceURI")}}</li>
- <li>{{domxref("Element.localName")}}</li>
- <li>{{domxref("Attr.prefix")}}</li>
-</ul>
diff --git a/files/ja/web/api/element/prefix/index.md b/files/ja/web/api/element/prefix/index.md
new file mode 100644
index 0000000000..e45b334480
--- /dev/null
+++ b/files/ja/web/api/element/prefix/index.md
@@ -0,0 +1,48 @@
+---
+title: Element.prefix
+slug: Web/API/Element/prefix
+tags:
+- API
+- DOM
+- NeedsBrowserCompatibility
+- NeedsMobileBrowserCompatibility
+- プロパティ
+- リファレンス
+browser-compat: api.Element.prefix
+translation_of: Web/API/Element/prefix
+---
+{{APIRef("DOM")}}
+
+**`Element.prefix`** は読み取り専用プロパティで、指定された要素の名前空間の接頭辞を、接頭辞が指定されていない場合は `null` を返します。
+
+## 構文
+
+```js
+string = element.prefix
+```
+
+## 例
+
+次の例はコンソールに "x" を記録します。
+
+```xml
+<x:div onclick="console.log(this.prefix)"/>
+```
+
+## 注
+
+これは、名前空間を認識するパーサーを使用しているとき、すなわち、文書が XML の MIME タイプで送信されたときのみ動作します。 HTML 文書では動作しません。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Element.namespaceURI")}}
+- {{domxref("Element.localName")}}
+- {{domxref("Attr.prefix")}}
diff --git a/files/ja/web/api/element/previouselementsibling/index.md b/files/ja/web/api/element/previouselementsibling/index.md
new file mode 100644
index 0000000000..510b6efcc7
--- /dev/null
+++ b/files/ja/web/api/element/previouselementsibling/index.md
@@ -0,0 +1,68 @@
+---
+title: Element.previousElementSibling
+slug: Web/API/Element/previousElementSibling
+tags:
+ - API
+ - DOM
+ - Element
+ - プロパティ
+ - 読み取り専用
+ - リファレンス
+browser-compat: api.Element.previousElementSibling
+translation_of: Web/API/Element/nextElementSibling
+---
+{{APIRef("DOM")}}
+
+**`Element.previousElementSibling`** は読み取り専用のプロパティで、この要素 ({{domxref("Element")}}) の親の子リスト内ですぐ前にある要素を返します。このノードがリストの最初のノードであった場合は `null` を返します。
+
+## 構文
+
+```js
+// ゲッター
+element = el.previousElementSibling;
+
+// セッターなし。読み取り専用プロパティ
+```
+
+## 例
+
+```html
+<div id="div-01">Here is div-01</div>
+<div id="div-02">Here is div-02</div>
+<li>This is a list item</li>
+<li>This is another list item</li>
+<div id="div-03">Here is div-03</div>
+
+<script>
+ let el = document.getElementById('div-03').previousElementSibling;
+ document.write('<p>Siblings of div-03</p><ol>');
+ while (el) {
+ document.write('<li>' + el.nodeName + '</li>');
+ el = el.previousElementSibling;
+ }
+ document.write('</ol>');
+</script>
+```
+
+この例は読み込み時に、ぺ0時に以下のような出力を行います。
+
+```
+Siblings of div-03
+
+ 1. LI
+ 2. LI
+ 3. DIV
+ 4. DIV
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Element.nextElementSibling")}}
diff --git a/files/ja/web/api/element/replacechildren/index.md b/files/ja/web/api/element/replacechildren/index.md
new file mode 100644
index 0000000000..75e0ceab80
--- /dev/null
+++ b/files/ja/web/api/element/replacechildren/index.md
@@ -0,0 +1,157 @@
+---
+title: Element.replaceChildren()
+slug: Web/API/Element/replaceChildren
+tags:
+ - API
+ - DOM
+ - メソッド
+ - Node
+ - Element
+ - リファレンス
+ - replaceChildren
+browser-compat: api.Element.replaceChildren
+translation_of: Web/API/Element/replaceChildren
+---
+{{APIRef("DOM")}}
+
+**`Element.replaceChildren()`** メソッドは、 {{domxref("Node")}} の既存の子ノードを、指定された新しい一連の子で置き換えます。 {{domxref("DOMString")}} または {{domxref("Node")}} オブジェクトを指定することができます。
+
+## 構文
+
+```js
+replaceChildren(...nodesOrDOMStrings)
+```
+
+### 引数
+
+- `nodesOrDOMStrings`
+ - : 一連の {{domxref("Node")}} または {{domxref("DOMString")}} オブジェクトで、この `Element` の既存の子を置き換えるものです。置き換えるオブジェクトが指定されなかった場合は、 `Element` の子ノードは空になります。
+
+### 例外
+
+- `HierarchyRequestError` {{DOMxRef("DOMException")}}
+ - : [ノードツリーの制約](https://dom.spec.whatwg.org/#concept-node-tree)に違反したときに発生します。
+
+## 例
+
+### ノードを空にする
+
+`replaceChildren()` は、ノードからすべての子ノードを取り除くための非常に便利なメカニズムを提供します。引数を指定せずに、親ノードで呼び出すと実現できます。
+
+```js
+myNode.replaceChildren();
+```
+
+### 要素間でノードを移行
+
+`replaceChildren()` を使えば、冗長なループコードに頼ることなく、要素間で簡単にノードを転送することができます。例えば、パーティーの料理を選択するための簡単なアプリケーションがあるとします。この HTML は次のようなものになるでしょう。
+
+```html
+<h2>パーティーの食べ物リスト</h2>
+
+<main>
+ <div>
+ <label for="no">No thanks!</label>
+
+ <select id="no" multiple size="10">
+ <option>りんご</option>
+ <option>オレンジ</option>
+ <option>ぶどう</option>
+ <option>バナナ</option>
+ <option>キウイフルーツ</option>
+ <option>チョコレートクッキー</option>
+ <option>ピーナッツクッキー</option>
+ <option>チョコレートバー</option>
+ <option>ハムサンド</option>
+ <option>チーズサンド</option>
+ <option>ファラフェルサンド</option>
+ <option>アイスクリーム</option>
+ <option>ゼリー</option>
+ <option>人参スティックとフムス</option>
+ <option>マルゲリータピザ</option>
+ <option>ぺぱろーにぴざ</option>
+ <option>ビーガン野菜ピザ</option>
+ </select>
+ </div>
+
+ <div class="buttons">
+ <button id="to-yes">"Yes" へ移動 --&gt;</button>
+ <button id="to-no">&lt;-- "No" へ移動</button>
+ </div>
+
+ <div>
+ <label for="yes">Yes please!</label>
+
+ <select id="yes" multiple size="10">
+
+ </select>
+ </div>
+</main>
+```
+
+簡単な CSS を使って、 2 つの選択リストを並べ、その間にコントロールボタンを配置するのが理にかなっているでしょう。
+
+```css
+main {
+ display: flex;
+}
+
+div {
+ margin-right: 20px;
+}
+
+label, button {
+ display: block;
+}
+
+.buttons {
+ display: flex;
+ flex-flow: column;
+ justify-content: center;
+}
+
+select {
+ width: 200px;
+}
+```
+
+ここでやりたいことは、 "yes" ボタンが押されたときに "no" リストで選択されているオプションを "yes" リストに転送し、 "no" ボタンが押されたときに "yes" リストで選択されているオプションを "no" リストに転送することです。
+
+このイベントハンドラーは、転送したい選択済みのオプションを 1 つの定数に、転送先のリスト内の既存のオプションを別の定数にまとめます。そして、オプションを転送するリストに対して `replaceChildren()` を呼び出し、スプレッド演算子を用いて両方の定数に含まれるすべてのオプションを渡します。
+
+```js
+const noSelect = document.getElementById('no');
+const yesSelect = document.getElementById('yes');
+const noBtn = document.getElementById('to-no');
+const yesBtn = document.getElementById('to-yes');
+
+yesBtn.addEventListener('click', () => {
+ const selectedTransferOptions = document.querySelectorAll('#no option:checked');
+ const existingYesOptions = document.querySelectorAll('#yes option');
+ yesSelect.replaceChildren(...selectedTransferOptions, ...existingYesOptions);
+});
+
+noBtn.addEventListener('click', () => {
+ const selectedTransferOptions = document.querySelectorAll('#yes option:checked');
+ const existingNoOptions = document.querySelectorAll('#no option');
+ noSelect.replaceChildren(...selectedTransferOptions, ...existingNoOptions);
+});
+```
+
+最終的な結果は次のようになります。
+
+{{EmbedLiveSample('Transferring_nodes_between_elements', '100%', '350')}}
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Element.prepend()")}}
+- {{domxref("Element.append()")}}
+- {{domxref("NodeList")}}
diff --git a/files/ja/web/api/element/requestpointerlock/index.md b/files/ja/web/api/element/requestpointerlock/index.md
new file mode 100644
index 0000000000..908db13eb9
--- /dev/null
+++ b/files/ja/web/api/element/requestpointerlock/index.md
@@ -0,0 +1,40 @@
+---
+title: Element.requestPointerLock()
+slug: Web/API/Element/requestPointerLock
+tags:
+ - API
+ - DOM
+ - 実験的
+ - メソッド
+ - NeedsExample
+ - PointerEvent
+ - リファレンス
+ - mouse lock
+browser-compat: api.Element.requestPointerLock
+translation_of: Web/API/Element/requestPointerLock
+---
+{{ APIRef("DOM") }}{{ SeeCompatTable }}
+
+**`Element.requestPointerLock()`** メソッドで、ポインターをこの要素にロックすることを非同期にリクエストすることができます。
+
+リクエストが成功したか失敗したかを追跡するには、 {{domxref("Document/pointerlockchange_event", "pointerlockchange")}} および {{domxref("Document/pointerlockerror_event", "pointerlockerror")}} イベントを {{domxref("Document")}} レベルで待ち受けする必要があります。
+
+## 構文
+
+```js
+instanceOfElement.requestPointerLock();
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{ domxref("Document.pointerLockElement") }}
+- {{ domxref("Document.exitPointerLock()") }}
+- [ポインターロック](/ja/docs/Web/API/Pointer_Lock_API)
diff --git a/files/ja/web/api/element/scrollheight/index.html b/files/ja/web/api/element/scrollheight/index.html
deleted file mode 100644
index a2146b9db5..0000000000
--- a/files/ja/web/api/element/scrollheight/index.html
+++ /dev/null
@@ -1,173 +0,0 @@
----
-title: Element.scrollHeight
-slug: Web/API/Element/scrollHeight
-tags:
- - API
- - CSSOM View
- - NeedsDHTMLRemovalInExample
- - Property
- - Reference
-translation_of: Web/API/Element/scrollHeight
----
-<div>{{APIRef("DOM")}}</div>
-
-<p><strong><code>Element.scrollHeight</code></strong> は読み取り専用のプロパティで、あふれて画面上に表示されない部分を含めた、要素の中身の高さの寸法です。</p>
-
-<p><code>scrollHeight</code> の値は、垂直スクロールバーを使用せずにすべてのコンテンツをビューポート内に収めるために要素に必要な最小の高さに等しくなります。高さは {{domxref("Element.clientHeight", "clientHeight")}} と同じ方法で測定されます。要素のパディングは含みますが、境界線、マージン、 (もしあれば) 水平スクロールバーは含みません。これには {{cssxref("::before")}} または {{cssxref("::after")}} のような擬似要素の高さを含むことがあります。要素の内容が垂直スクロールバーを表示することなく収まる場合、その <code>scrollHeight</code> は {{domxref("Element.clientHeight", "clientHeight")}} と等しくなります。</p>
-
-<div class="note">
-<p>このプロパティは値を整数値に丸めます。小数値が必要であれば、 {{ domxref("Element.getBoundingClientRect()") }} を使用してください。</p>
-</div>
-
-<h2 id="Syntax" name="Syntax">構文</h2>
-
-<pre class="syntaxbox notranslate"><var>elemScrollHeight</var> = <var>element</var>.scrollHeight;</pre>
-
-<h3 id="Value" name="Value">値</h3>
-
-<p>整数値で、要素の scrollHeight ピクセル値に対応します。</p>
-
-<h2 id="Example" name="Example">例</h2>
-
-<div id="offsetContainer" style="margin: 40px 50px 50px; background-color: rgb(255, 255, 204); border: 4px dashed black; color: black; position: relative; display: inline-block;">
-<div id="idDiv" style="margin: 24px 29px; border: 24px black solid; padding: 0px 28px; width: 199px; height: 102px; overflow: auto; background-color: white; font-size: 13px!important; font-family: Arial, sans-serif;">
-<p id="PaddingTopLabel" style="text-align: center; font-style: italic; font-weight: bold; font-size: 13px!important; font-family: Arial, sans-serif; margin: 0px;">padding-top</p>
-
-<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
-
-<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
-
-<p id="PaddingBottomLabel" style="text-align: center; font-style: italic; font-weight: bold; font-size: 13px!important; font-family: Arial, sans-serif; margin: 0px;">padding-bottom</p>
-</div>
-<strong>Left</strong> <strong>Top</strong> <strong style="color: blue; font-family: arial,sans-serif; font-size: 13px!important; font-weight: bold; left: 370px; position: absolute; top: 85px;">Right</strong> <strong style="color: blue; font-family: arial,sans-serif; font-size: 13px!important; font-weight: bold; left: 164px; position: absolute; top: 225px;">Bottom</strong> <em>margin-top</em> <em>margin-bottom</em> <em>border-top</em> <em>border-bottom</em></div>
-
-<p><img alt="Image:scrollHeight.png" class="internal" src="/@api/deki/files/840/=ScrollHeight.png"></p>
-
-<h2 id="Problems_and_solutions" name="Problems_and_solutions">問題と解決方法</h2>
-
-<h3 id="要素が完全にスクロールされたかどうかを判定する">要素が完全にスクロールされたかどうかを判定する</h3>
-
-<p>次の等式は、要素がスクロールの終点にあると <code>true</code> になり、それ以外は <code>false</code> になります。</p>
-
-<pre class="syntaxbox notranslate">element.scrollHeight - element.scrollTop === element.clientHeight
-</pre>
-
-<p>コンテナーは、スクロールしないがオーバーフローする子要素を持つ場合、次の条件式はコンテナーがスクロールできるかどうかを判定します。</p>
-
-<pre class="syntaxbox notranslate">window.getComputedStyle(element).overflowY === 'visible'
-window.getComputedStyle(element).overflowY !== 'hidden'
-</pre>
-
-<h2 id="scrollHeight_Demo" name="scrollHeight_Demo">scrollHeight のデモ</h2>
-
-<p>{{domxref("GlobalEventHandlers/onscroll", "onscroll")}} イベントに関連付けることで、この等価性はユーザーがテキストを読んだかどうかを判断するのに役立ちます ({{domxref("element.scrollTop")}} および {{domxref("element.clientHeight")}} プロパティも参照してください)。例:</p>
-
-<h3 id="HTML">HTML</h3>
-
-<pre class="brush: html notranslate">&lt;form name="registration"&gt;
- &lt;p&gt;
- &lt;textarea id="rules"&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum at laoreet magna.
-Aliquam erat volutpat. Praesent molestie, dolor ut eleifend aliquam, mi ligula ultrices sapien, quis cursus
-neque dui nec risus. Duis tincidunt lobortis purus eu aliquet. Quisque in dignissim magna. Aenean ac lorem at
-velit ultrices consequat. Nulla luctus nisi ut libero cursus ultrices. Pellentesque nec dignissim enim. Phasellus
-ut quam lacus, sed ultricies diam. Vestibulum convallis rutrum dolor, sit amet egestas velit scelerisque id.
-Proin non dignissim nisl. Sed mi odio, ullamcorper eget mattis id, malesuada vitae libero. Integer dolor lorem,
-mattis sed dapibus a, faucibus id metus. Duis iaculis dictum pulvinar. In nisi nibh, dapibus ac blandit at, porta
-at arcu. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Praesent
-dictum ipsum aliquet erat eleifend sit amet sollicitudin felis tempus. Aliquam congue cursus venenatis. Maecenas
-luctus pellentesque placerat. Mauris nisl odio, condimentum sed fringilla a, consectetur id ligula. Praesent sem
-sem, aliquet non faucibus vitae, iaculis nec elit. Nullam volutpat, lectus et blandit bibendum, nulla lorem congue
-turpis, ac pretium tortor sem ut nibh. Donec vel mi in ligula hendrerit sagittis. Donec faucibus viverra fermentum.
-Fusce in arcu arcu. Nullam at dignissim massa. Cras nibh est, pretium sit amet faucibus eget, sollicitudin in
-ligula. Vivamus vitae urna mauris, eget euismod nunc. Aenean semper gravida enim non feugiat. In hac habitasse
-platea dictumst. Cras eleifend nisl volutpat ante condimentum convallis. Donec varius dolor malesuada erat
-consequat congue. Donec eu lacus ut sapien venenatis tincidunt. Quisque sit amet tellus et enim bibendum varius et
-a orci. Donec aliquet volutpat scelerisque. Proin et tortor dolor. Ut aliquet, dolor a mattis sodales, odio diam
-pulvinar sem, egestas pretium magna eros vitae felis. Nam vitae magna lectus, et ornare elit. Morbi feugiat, ipsum
-ac mattis congue, quam neque mollis tortor, nec mollis nisl dolor a tortor. Maecenas varius est sit amet elit
-interdum quis placerat metus posuere. Duis malesuada justo a diam vestibulum vel aliquam nisi ornare. Integer
-laoreet nisi a odio ornare non congue turpis eleifend. Cum sociis natoque penatibus et magnis dis parturient montes,
-nascetur ridiculus mus. Cras vulputate libero sed arcu iaculis nec lobortis orci fermentum.
- &lt;/textarea&gt;
- &lt;/p&gt;
- &lt;p&gt;
- &lt;input type="checkbox" id="agree" name="accept" /&gt;
- &lt;label for="agree"&gt;I agree&lt;/label&gt;
- &lt;input type="submit" id="nextstep" value="Next" /&gt;
- &lt;/p&gt;
-&lt;/form&gt;</pre>
-
-<h3 id="CSS">CSS</h3>
-
-<pre class="brush: css notranslate">#notice {
- display: inline-block;
- margin-bottom: 12px;
- border-radius: 5px;
- width: 600px;
- padding: 5px;
- border: 2px #7FDF55 solid;
-}
-
-#rules {
- width: 600px;
- height: 130px;
- padding: 5px;
- border: #2A9F00 solid 2px;
- border-radius: 5px;
-}</pre>
-
-<h3 id="JavaScript">JavaScript</h3>
-
-<pre class="brush: js notranslate">function checkReading () {
- if (checkReading.read) {
- return;
- }
- checkReading.read = this.scrollHeight - this.scrollTop === this.clientHeight;
- document.registration.accept.disabled = document.getElementById("nextstep").disabled = !checkReading.read;
- checkReading.noticeBox.innerHTML = checkReading.read ? "Thank you." : "Please, scroll and read the following text.";
-}
-
-onload = function () {
- var oToBeRead = document.getElementById("rules");
- checkReading.noticeBox = document.createElement("span");
- document.registration.accept.checked = false;
- checkReading.noticeBox.id = "notice";
- oToBeRead.parentNode.insertBefore(checkReading.noticeBox, oToBeRead);
- oToBeRead.parentNode.insertBefore(document.createElement("br"), oToBeRead);
- oToBeRead.onscroll = checkReading;
- checkReading.call(oToBeRead);
-}</pre>
-
-<p>{{EmbedLiveSample('scrollHeight_Demo', '640', '400')}}</p>
-
-<h2 id="Specification" name="Specification">仕様書</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">状態</th>
- <th scope="col">備考</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName("CSSOM View", "#dom-element-scrollheight", "Element.scrollHeight")}}</td>
- <td>{{Spec2("CSSOM View")}}</td>
- <td>初回定義</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat("api.Element.scrollHeight")}}</p>
-
-<h2 id="See_also" name="See_also">関連情報</h2>
-
-<ul>
- <li><a href="https://docs.microsoft.com/en-us/previous-versions//hh781509(v=vs.85)">MSDN: Measuring Element Dimension and Location with CSSOM in Windows Internet Explorer 9</a></li>
- <li>{{domxref("Element.clientHeight")}}</li>
- <li>{{domxref("HTMLElement.offsetHeight")}}</li>
- <li><a href="/ja/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements">要素の寸法の決定</a></li>
-</ul>
diff --git a/files/ja/web/api/element/scrollheight/index.md b/files/ja/web/api/element/scrollheight/index.md
new file mode 100644
index 0000000000..cead8be682
--- /dev/null
+++ b/files/ja/web/api/element/scrollheight/index.md
@@ -0,0 +1,167 @@
+---
+title: Element.scrollHeight
+slug: Web/API/Element/scrollHeight
+tags:
+ - API
+ - CSSOM View
+ - NeedsDHTMLRemovalInExample
+ - プロパティ
+ - リファレンス
+browser-compat: api.Element.scrollHeight
+translation_of: Web/API/Element/scrollHeight
+---
+{{APIRef("DOM")}}
+
+**`Element.scrollHeight`** は読み取り専用のプロパティで、あふれて画面上に表示されない部分を含めた、要素の中身の高さの寸法です。
+
+![](scrollheight.png)
+
+`scrollHeight` の値は、垂直スクロールバーを使用せずにすべてのコンテンツをビューポート内に収めるために要素に必要な最小の高さに等しくなります。高さは {{domxref("Element.clientHeight", "clientHeight")}} と同じ方法で測定されます。要素のパディングは含みますが、境界線、マージン、 (もしあれば) 水平スクロールバーは含みません。これには {{cssxref("::before")}} または {{cssxref("::after")}} のような擬似要素の高さを含むことがあります。要素の内容が垂直スクロールバーを表示することなく収まる場合、その `scrollHeight` は {{domxref("Element.clientHeight", "clientHeight")}} と等しくなります。
+
+> **Note:** このプロパティは値を整数値に丸めます。小数値が必要であれば、 {{ domxref("Element.getBoundingClientRect()") }} を使用してください。
+
+## 構文
+
+```js
+elemScrollHeight = element.scrollHeight;
+```
+
+### 値
+
+整数値で、要素の scrollHeight ピクセル値に対応します。
+
+## 問題と解決方法
+
+## 要素が完全にスクロールされたかどうかの判定
+
+`scrollTop` は丸められない数値で、 `scrollHeight` と `clientHeight` は丸められます。したがって、スクロール領域が下までスクロールされているかどうかを判断する唯一の方法は、スクロール量が何らかの閾値 (この例では `1`) に十分に近いかどうかを確認することです。
+
+```js
+Math.abs(element.scrollHeight - element.clientHeight - element.scrollTop) < 1
+```
+
+次の例は動作しません。 `scrollTop` が小数を含む可能性があるからです。
+
+```js
+element.scrollHeight - Math.abs(element.scrollTop) === element.clientHeight
+```
+
+### 要素がスクロール可能かどうかを判定
+
+コンテナーは、スクロールしないがあふれる子要素を持つ場合、次の条件式はコンテナーがスクロールできるかどうかを判定します。
+
+```js
+window.getComputedStyle(element).overflowY === 'visible'
+window.getComputedStyle(element).overflowY !== 'hidden'
+```
+
+## 例
+
+### ユーザーがテキストを読んだかどうかをチェック
+
+{{domxref("GlobalEventHandlers/onscroll", "onscroll")}} イベントに関連付けることで、この等価性はユーザーがテキストを読んだかどうかを判断するのに役立ちます ({{domxref("element.scrollTop")}} および {{domxref("element.clientHeight")}} プロパティも参照してください)。
+
+以下のデモにあるチェックボックスは無効になっており、テキストエリアの内容が最後までスクロールするまでチェックして同意を表すことができなくなっています。
+
+#### HTML
+
+```html
+<form name="registration">
+ <p>
+ <textarea id="rules">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum at laoreet magna.
+Aliquam erat volutpat. Praesent molestie, dolor ut eleifend aliquam, mi ligula ultrices sapien, quis cursus
+neque dui nec risus. Duis tincidunt lobortis purus eu aliquet. Quisque in dignissim magna. Aenean ac lorem at
+velit ultrices consequat. Nulla luctus nisi ut libero cursus ultrices. Pellentesque nec dignissim enim. Phasellus
+ut quam lacus, sed ultricies diam. Vestibulum convallis rutrum dolor, sit amet egestas velit scelerisque id.
+Proin non dignissim nisl. Sed mi odio, ullamcorper eget mattis id, malesuada vitae libero. Integer dolor lorem,
+mattis sed dapibus a, faucibus id metus. Duis iaculis dictum pulvinar. In nisi nibh, dapibus ac blandit at, porta
+at arcu. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Praesent
+dictum ipsum aliquet erat eleifend sit amet sollicitudin felis tempus. Aliquam congue cursus venenatis. Maecenas
+luctus pellentesque placerat. Mauris nisl odio, condimentum sed fringilla a, consectetur id ligula. Praesent sem
+sem, aliquet non faucibus vitae, iaculis nec elit. Nullam volutpat, lectus et blandit bibendum, nulla lorem congue
+turpis, ac pretium tortor sem ut nibh. Donec vel mi in ligula hendrerit sagittis. Donec faucibus viverra fermentum.
+Fusce in arcu arcu. Nullam at dignissim massa. Cras nibh est, pretium sit amet faucibus eget, sollicitudin in
+ligula. Vivamus vitae urna mauris, eget euismod nunc. Aenean semper gravida enim non feugiat. In hac habitasse
+platea dictumst. Cras eleifend nisl volutpat ante condimentum convallis. Donec varius dolor malesuada erat
+consequat congue. Donec eu lacus ut sapien venenatis tincidunt. Quisque sit amet tellus et enim bibendum varius et
+a orci. Donec aliquet volutpat scelerisque. Proin et tortor dolor. Ut aliquet, dolor a mattis sodales, odio diam
+pulvinar sem, egestas pretium magna eros vitae felis. Nam vitae magna lectus, et ornare elit. Morbi feugiat, ipsum
+ac mattis congue, quam neque mollis tortor, nec mollis nisl dolor a tortor. Maecenas varius est sit amet elit
+interdum quis placerat metus posuere. Duis malesuada justo a diam vestibulum vel aliquam nisi ornare. Integer
+laoreet nisi a odio ornare non congue turpis eleifend. Cum sociis natoque penatibus et magnis dis parturient montes,
+nascetur ridiculus mus. Cras vulputate libero sed arcu iaculis nec lobortis orci fermentum.
+ </textarea>
+ </p>
+ <p>
+ <input type="checkbox" id="agree" name="accept" />
+ <label for="agree">I agree</label>
+ <input type="submit" id="nextstep" value="Next" />
+ </p>
+</form>
+```
+
+#### CSS
+
+```css
+#notice {
+ display: inline-block;
+ margin-bottom: 12px;
+ border-radius: 5px;
+ width: 600px;
+ padding: 5px;
+ border: 2px #7FDF55 solid;
+}
+
+#rules {
+ width: 600px;
+ height: 130px;
+ padding: 5px;
+ border: #2A9F00 solid 2px;
+ border-radius: 5px;
+}
+```
+
+#### JavaScript
+
+```js
+function checkReading () {
+ if (checkReading.read) {
+ return;
+ }
+ checkReading.read = this.scrollHeight - Math.round(this.scrollTop) === this.clientHeight;
+ document.registration.accept.disabled = document.getElementById("nextstep").disabled = !checkReading.read;
+ checkReading.noticeBox.textContent = checkReading.read ? "Thank you." : "Please, scroll and read the following text.";
+}
+
+onload = function () {
+ var oToBeRead = document.getElementById("rules");
+ checkReading.noticeBox = document.createElement("span");
+ document.registration.accept.checked = false;
+ checkReading.noticeBox.id = "notice";
+ oToBeRead.parentNode.insertBefore(checkReading.noticeBox, oToBeRead);
+ oToBeRead.parentNode.insertBefore(document.createElement("br"), oToBeRead);
+ oToBeRead.onscroll = checkReading;
+ checkReading.call(oToBeRead);
+}
+```
+
+### 結果
+
+{{EmbedLiveSample('Checking_that_the_user_has_read_a_text', '640', '400')}}
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [MSDN:
+ Measuring Element Dimension and Location with CSSOM in Windows Internet Explorer
+ 9](<https://docs.microsoft.com/previous-versions/hh781509(v=vs.85)>)
+- {{domxref("Element.clientHeight")}}
+- {{domxref("HTMLElement.offsetHeight")}}
+- [要素の寸法の決定](/ja/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements)
diff --git a/files/ja/web/api/element/scrollleft/index.html b/files/ja/web/api/element/scrollleft/index.html
deleted file mode 100644
index 4a593af238..0000000000
--- a/files/ja/web/api/element/scrollleft/index.html
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: Element.scrollLeft
-slug: Web/API/Element/scrollLeft
-tags:
- - API
- - CSSOM View
- - Property
- - Reference
- - プロパティ
-translation_of: Web/API/Element/scrollLeft
----
-<div>{{APIRef("DOM")}}</div>
-
-<p><strong><code>Element.scrollLeft</code></strong> プロパティは、要素の内容が左端からスクロールするピクセル数を取得または設定します。</p>
-
-<p>要素の {{cssxref("direction")}} が <code>rtl</code> (right-to-left、右書き) の場合、 <code>scrollLeft</code> が <code>0</code> のときにスクロールバーが右端の位置 (スクロールする内容の開始位置) にあり、コンテンツの末尾にスクロールするにつれて、負の数が増加していきます。</p>
-
-<div class="blockIndicator warning">
-<p>画面拡大を使用するシステムでは、 <code>scrollLeft</code> が小数になることがあります。</p>
-</div>
-
-<h2 id="Syntax" name="Syntax">構文</h2>
-
-<h3 id="Getting_the_value" name="Getting_the_value">値の取得</h3>
-
-<pre class="syntaxbox">// スクロールしたピクセル数を取得
-var <em>sLeft</em> = <em>element</em>.scrollLeft;
-</pre>
-
-<p><code>sLeft</code> は <code>element</code> が左端からスクロールしたピクセル数を整数で表現したものです。</p>
-
-<h3 id="Setting_the_value" name="Setting_the_value">値の設定</h3>
-
-<pre class="syntaxbox">// スクロールしたピクセル数を設定
-<em>element</em>.scrollLeft = 10;
-</pre>
-
-<p><code>scrollLeft</code> は任意の整数値で設定することができます。しかし、</p>
-
-<ul>
- <li>要素がスクロールできない場合 (例えば、はみ出した部分がない場合)、 <code>scrollLeft</code> は <code>0</code> に設定されます。</li>
- <li>指定された値が <code>0</code> より小さかったら (右書きの要素では <code>0</code> より大きかったら)、 <code>scrollLeft</code> は <code>0</code> に設定されます。</li>
- <li>指定された値が、コンテンツがスクロールできる最大値を超えていたら、 <code>scrollLeft</code> は最大値に設定されます。</li>
-</ul>
-
-<h2 id="Example" name="Example">例</h2>
-
-<h3 id="HTML">HTML</h3>
-
-<pre class="brush: html">&lt;div id="container"&gt;
- &lt;div id="content"&gt;ボタンをクリックすると右にスライドします。&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;button id="slide" type="button"&gt;右へスライド&lt;/button&gt;</pre>
-
-<h3 id="CSS">CSS</h3>
-
-<pre class="brush: css">#container {
- width: 100px;
- height: 100px;
- border: 1px solid #ccc;
- overflow-x: scroll;
-}
-
-#content {
- width: 250px;
- background-color: #ccc;
-}</pre>
-
-<h3 id="JavaScript">JavaScript</h3>
-
-<pre class="brush: js">const button = document.getElementById('slide');
-
-button.onclick = function () {
- document.getElementById('container').scrollLeft += 20;
-};</pre>
-
-<h3 id="Result" name="Result">結果</h3>
-
-<p>{{EmbedLiveSample("Example")}}</p>
-
-<h2 id="Specifications" name="Specifications">仕様書</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">状態</th>
- <th scope="col">備考</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('CSSOM View', '#dom-element-scrollleft', 'scrollLeft')}}</td>
- <td>{{Spec2("CSSOM View")}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat("api.Element.scrollLeft")}}</p>
-
-<h2 id="See_also" name="See_also">関連情報</h2>
-
-<ul>
- <li><a href="https://msdn.microsoft.com/en-us/library/hh781509(v=vs.85).aspx" title="MSDN Measuring Element Dimension and Location">MSDN's Measuring Element Dimension and Location</a></li>
- <li>{{domxref("Element.scrollTop")}}</li>
- <li>{{domxref("Element.scrollTo()")}}</li>
-</ul>
diff --git a/files/ja/web/api/element/scrollleft/index.md b/files/ja/web/api/element/scrollleft/index.md
new file mode 100644
index 0000000000..0d7dc3bbb4
--- /dev/null
+++ b/files/ja/web/api/element/scrollleft/index.md
@@ -0,0 +1,98 @@
+---
+title: Element.scrollLeft
+slug: Web/API/Element/scrollLeft
+tags:
+ - API
+ - CSSOM View
+ - プロパティ
+ - リファレンス
+browser-compat: api.Element.scrollLeft
+translation_of: Web/API/Element/scrollLeft
+---
+{{APIRef("DOM")}}
+
+**`Element.scrollLeft`** プロパティは、要素の内容が左端からスクロールするピクセル数を取得または設定します。
+
+要素の {{cssxref("direction")}} が `rtl` (right-to-left、右書き) の場合、 `scrollLeft` が `0` のときにスクロールバーが右端の位置(スクロールする内容の開始位置)にあり、コンテンツの末尾にスクロールするにつれて、負の数が増加していきます。
+
+> **Warning:** 画面拡大を使用するシステムでは、 `scrollLeft` が小数になることがあります。
+
+## 構文
+
+### 値の取得
+
+```js
+// スクロールしたピクセル数を取得
+var sLeft = element.scrollLeft;
+```
+
+`sLeft` は `element` が左端からスクロールしたピクセル数を整数で表現したものです。
+
+### 値の設定
+
+```js
+// スクロールしたピクセル数を設定
+element.scrollLeft = 10;
+```
+
+`scrollLeft` は任意の整数値で設定することができます。しかし、
+
+- 要素がスクロールできない場合 (例えば、はみ出した部分がない場合)、 `scrollLeft` は `0` に設定されます。
+- 指定された値が `0` より小さかったら (右書きの要素では `0` より大きかったら)、 `scrollLeft` は `0` に設定されます。
+- 指定された値が、コンテンツがスクロールできる最大値を超えていたら、 `scrollLeft` は最大値に設定されます。
+
+## 例
+
+### HTML
+
+```html
+<div id="container">
+ <div id="content">ボタンをクリックすると右へスライドします。</div>
+</div>
+
+<button id="slide" type="button">右へスライド</button>
+```
+
+### CSS
+
+```css
+#container {
+ width: 100px;
+ height: 100px;
+ border: 1px solid #ccc;
+ overflow-x: scroll;
+}
+
+#content {
+ width: 250px;
+ background-color: #ccc;
+}
+```
+
+### JavaScript
+
+```js
+const button = document.getElementById('slide');
+
+button.onclick = function () {
+ document.getElementById('container').scrollLeft += 20;
+};
+```
+
+### 結果
+
+{{EmbedLiveSample("Example")}}
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [MSDN's Measuring Element Dimension and Location](<https://msdn.microsoft.com/library/hh781509(v=vs.85).aspx> "MSDN Measuring Element Dimension and Location")
+- {{domxref("Element.scrollTop")}}
+- {{domxref("Element.scrollTo()")}}
diff --git a/files/ja/web/api/element/scrollleftmax/index.md b/files/ja/web/api/element/scrollleftmax/index.md
new file mode 100644
index 0000000000..a1801fb0fb
--- /dev/null
+++ b/files/ja/web/api/element/scrollleftmax/index.md
@@ -0,0 +1,35 @@
+---
+title: Element.scrollLeftMax
+slug: Web/API/Element/scrollLeftMax
+tags:
+ - API
+ - CSSOM View
+ - Element
+ - 標準外
+ - プロパティ
+ - 読み取り専用
+ - リファレンス
+browser-compat: api.Element.scrollLeftMax
+translation_of: Web/API/Element/scrollLeftMax
+---
+{{APIRef("DOM")}}{{Non-standard_header}}
+
+**`Element.scrollLeftMax`** は読み取り専用のプロパティで、この要素で可能な最大の左スクロールオフセットを表す数値を返します。
+
+## 構文
+
+```js
+var pxl = element.scrollLeftMax;
+```
+
+## 仕様書
+
+_このプロパティはどの仕様書にも含まれていません。_
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- 他の軸で同じ情報を提供する {{domxref("Element.scrollTopMax")}}。
diff --git a/files/ja/web/api/element/scrolltop/index.html b/files/ja/web/api/element/scrolltop/index.html
deleted file mode 100644
index 21f8478a46..0000000000
--- a/files/ja/web/api/element/scrolltop/index.html
+++ /dev/null
@@ -1,92 +0,0 @@
----
-title: Element.scrollTop
-slug: Web/API/Element/scrollTop
-tags:
- - API
- - CSSOM View
- - NeedsArtUpdate
- - NeedsMarkupWork
- - Property
- - Reference
- - プロパティ
-translation_of: Web/API/Element/scrollTop
----
-<div>{{APIRef("DOM")}}</div>
-
-<p><span class="seoSummary"><code><strong>Element.scrollTop</strong></code> プロパティは、要素の内容が垂直にスクロールするピクセル数を取得または設定します。</span></p>
-
-<p>要素の <code>scrollTop</code> の値は、要素の上から最も上の<em>表示されている</em>コンテンツまでの距離を測ったものです。要素の内容が垂直スクロールバーを生成しなかった場合は、 <code>scrollTop</code> の値は <code>0</code> になります。</p>
-
-<p><code>scrollTop</code> がルート要素 (<code>&lt;html&gt;</code> 要素) に対して使用されると、ウィンドウの <code>scrollY</code> が返されます。 <a href="https://www.w3.org/TR/2016/WD-cssom-view-1-20160317/#dom-element-scrolltop">これは <code>scrollTop</code> の特例です</a>。</p>
-
-<div class="warning">
-<p>画面の拡大縮小を使用するシステムでは、 <code>scrollTop</code> が小数になることがあります。</p>
-</div>
-
-<h2 id="Syntax" name="Syntax">構文</h2>
-
-<pre class="syntaxbox">// スクロールしたピクセル数を取得
-var <var>intElemScrollTop</var> = someElement.scrollTop;
-</pre>
-
-<p>このコードを実行した後、 <code><var>intElemScrollTop</var></code> はこの要素 ({{domxref("Element")}}) が上方向にスクロールしたピクセル数に対応した整数になります。</p>
-
-<pre class="brush: js">// スクロールするピクセル数を設定
-<var>element</var>.scrollTop = <var>intValue</var>;
-</pre>
-
-<p><code>scrollTop</code> は任意の整数値で設定することができます。しかし、</p>
-
-<ul>
- <li>要素がスクロールできない場合 (例えば、はみ出した部分がない場合や、要素に "<strong>non-scrollable</strong>" のプロパティがある場合)、 <code>scrollTop</code> は <code>0</code> に設定されます。</li>
- <li><code>scrollTop</code> は負の数には対応していません。代わりに、 <code>0</code> に戻ります。</li>
- <li>指定された値が、コンテンツがスクロールできる最大値を超えていたら、 <code>scrollTop</code> は最大値に設定されます。</li>
-</ul>
-
-<h2 id="Example" name="Example">例</h2>
-
-<div id="offsetContainer" style="margin: 40px 50px 50px; background-color: rgb(255, 255, 204); border: 4px dashed black; color: black; position: relative; display: inline-block;">
-<div id="idDiv" style="margin: 24px 29px; border: 24px black solid; padding: 0px 28px; width: 199px; height: 102px; overflow: auto; background-color: white; font-size: 13px!important; font-family: Arial, sans-serif;">
-<p id="PaddingTopLabel" style="text-align: center; font-style: italic; font-weight: bold; font-size: 13px!important; font-family: Arial, sans-serif; margin: 0px;">padding-top</p>
-<em><strong>If you can see this, scrollTop = 0</strong></em>
-
-<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
-<strong><em>If you can see this, scrollTop is &gt; 0</em></strong>
-
-<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
-<strong><em>If you can see this, scrollTop is maxed-out</em></strong>
-
-<p id="PaddingBottomLabel" style="text-align: center; font-style: italic; font-weight: bold; font-size: 13px!important; font-family: Arial, sans-serif; margin: 0px;">padding-bottom</p>
-</div>
-<strong style="color: blue; font-family: arial,sans-serif; font-size: 13px!important; font-weight: bold; left: -32px; position: absolute; top: 85px;">Left</strong> <strong style="color: blue; font-family: arial,sans-serif; font-size: 13px!important; font-weight: bold; left: 170px; position: absolute; top: -24px;">Top</strong> <strong style="color: blue; font-family: arial,sans-serif; font-size: 13px!important; font-weight: bold; left: 370px; position: absolute; top: 85px;">Right</strong> <strong style="color: blue; font-family: arial,sans-serif; font-size: 13px!important; font-weight: bold; left: 164px; position: absolute; top: 203px;">Bottom</strong> <em>margin-top</em> <em>margin-bottom</em> <em>border-top</em> <em>border-bottom</em></div>
-
-<h2 id="Specifications" name="Specifications">仕様書</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">状態</th>
- <th scope="col">備考</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('CSSOM View', '#dom-element-scrolltop', 'scrollTop')}}</td>
- <td>{{Spec2("CSSOM View")}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat("api.Element.scrollTop")}}</p>
-
-<h2 id="See_also" name="See_also">関連情報</h2>
-
-<ul>
- <li><a href="https://msdn.microsoft.com/en-us/library/hh781509(v=vs.85).aspx" title="MSDN Measuring Element Dimension and Location">MSDN's Measuring Element Dimension and Location</a></li>
- <li>{{domxref("Element.scrollLeft")}}</li>
- <li>{{domxref("Element.scrollTo()")}}</li>
-</ul>
diff --git a/files/ja/web/api/element/scrolltop/index.md b/files/ja/web/api/element/scrolltop/index.md
new file mode 100644
index 0000000000..898f8cc7bb
--- /dev/null
+++ b/files/ja/web/api/element/scrolltop/index.md
@@ -0,0 +1,110 @@
+---
+title: Element.scrollTop
+slug: Web/API/Element/scrollTop
+tags:
+ - API
+ - CSSOM View
+ - NeedsArtUpdate
+ - NeedsMarkupWork
+ - プロパティ
+ - リファレンス
+browser-compat: api.Element.scrollTop
+translation_of: Web/API/Element/scrollTop
+---
+{{APIRef("DOM")}}
+
+**`Element.scrollTop`** プロパティは、要素の内容が垂直にスクロールするピクセル数を取得または設定します。
+
+要素の `scrollTop` の値は、要素の上から最も上の*表示されている*コンテンツまでの距離を測ったものです。要素の内容が垂直スクロールバーを生成しなかった場合は、 `scrollTop` の値は `0` になります。
+
+`scrollTop` がルート要素 (`<html>` 要素) に対して使用されると、ウィンドウの `scrollY` が返されます。[これは `scrollTop` の特例です](https://www.w3.org/TR/2016/WD-cssom-view-1-20160317/#dom-element-scrolltop)。
+
+> **Warning:** 画面の拡大縮小を使用するシステムでは、 `scrollTop` が小数になることがあります。
+
+## 構文
+
+```js
+// スクロールしたピクセル数を取得
+var intElemScrollTop = someElement.scrollTop;
+```
+
+このコードを実行した後、 `intElemScrollTop` はこの要素 ({{domxref("Element")}}) が上方向にスクロールしたピクセル数に対応した整数になります。
+
+```js
+// スクロールするピクセル数を設定
+element.scrollTop = intValue;
+```
+
+`scrollTop` は任意の整数値で設定することができます。しかし、
+
+- 要素がスクロールできない場合 (例えば、はみ出した部分がない場合や、要素に "**non-scrollable**" のプロパティがある場合)、 `scrollTop` は `0` に設定されます。
+- `scrollTop` は負の数には対応していません。代わりに、 `0` に戻ります。
+- 指定された値が、コンテンツがスクロールできる最大値を超えていたら、 `scrollTop` は最大値に設定されます。
+
+## 例
+
+### 要素のスクロール
+
+この例で、破線の境界線の付いた内部のコンテナーをスクロールしてみて、 `scrollTop` の値がどのように変わるかを確認してください。
+
+#### HTML
+
+```html
+
+<div id="container">
+ <div id="scroller">
+ <p>Far out in the uncharted backwaters of the unfashionable end
+ of the western spiral arm of the Galaxy lies a small unregarded
+ yellow sun. Orbiting this at a distance of roughly ninety-two million
+ miles is an utterly insignificant little blue green planet whose
+ ape-descended life forms are so amazingly primitive that they still
+ think digital watches are a pretty neat idea.</p>
+ </div>
+</div>
+
+<div id="output">scrollTop: 0</div>
+```
+
+#### CSS
+
+```css
+#scroller {
+ overflow: scroll;
+ height: 150px;
+ width: 150px;
+ border: 5px dashed orange;
+}
+
+#output {
+ padding: 1rem 0;
+}
+```
+
+#### JavaScript
+
+```js
+const scroller = document.querySelector("#scroller");
+const output = document.querySelector("#output");
+
+scroller.addEventListener("scroll", event => {
+ output.textContent = `scrollTop: ${scroller.scrollTop}`;
+});
+```
+
+#### 結果
+
+{{EmbedLiveSample("Scrolling_an_element", 400, 250)}}
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [MSDN's Measuring Element Dimension and Location](<https://msdn.microsoft.com/library/hh781509(v=vs.85).aspx> "MSDN Measuring Element Dimension and Location")
+- {{domxref("Element.scrollLeft")}}
+- {{domxref("Element.scrollTo()")}}
diff --git a/files/ja/web/api/element/scrollwidth/index.html b/files/ja/web/api/element/scrollwidth/index.html
deleted file mode 100644
index 5f3e98892d..0000000000
--- a/files/ja/web/api/element/scrollwidth/index.html
+++ /dev/null
@@ -1,125 +0,0 @@
----
-title: Element.scrollWidth
-slug: Web/API/Element/scrollWidth
-tags:
- - API
- - CSSOM View
- - Property
- - Reference
- - プロパティ
-translation_of: Web/API/Element/scrollWidth
----
-<div>{{APIRef("DOM")}}</div>
-
-<p><strong><code>Element.scrollWidth</code></strong> は読み取り専用のプロパティで、あふれたために画面に表示されない部分を含めた、要素の中身の幅の寸法です。</p>
-
-<p><code>scrollWidth</code> の値は、水平スクロールバーを使用せずにすべてのコンテンツをビューポート内に合わせるために要素が必要とする最小幅に等しくなります。幅は {{domxref("Element.clientWidth", "clientWidth")}} と同じ方法で定めます。要素のパディングは含みますが、境界線、マージン、 (もしあれば) 垂直スクロールバーは含みません。これには {{cssxref("::before")}} または {{cssxref("::after")}} のような疑似要素の幅を含むことがあります。要素の内容が水平スクロールバーが必要なく合うのであれば、 <code>scrollWidth</code> は {{domxref("Element.clientWidth", "clientWidth")}} と等しくなります。</p>
-
-<div class="note">
-<p>このプロパティは値を整数値に丸めます。小数値が必要であれば、 {{ domxref("element.getBoundingClientRect()") }} を使用してください。</p>
-</div>
-
-<h2 id="Syntax" name="Syntax">構文</h2>
-
-<pre class="syntaxbox">var <var>xScrollWidth</var> = <var>element</var>.scrollWidth;</pre>
-
-<p><code><var>xScrollWidth</var></code> はピクセル単位の <code><var>element</var></code> のコンテンツの幅です。</p>
-
-<h2 id="Example" name="Example">例</h2>
-
-<pre class="brush:html">&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-    &lt;title&gt;Example&lt;/title&gt;
-    &lt;style&gt;
-        div {
-            overflow: hidden;
-            white-space: nowrap;
-            text-overflow: ellipsis;
-        }
-
-        #aDiv {
-            width: 100px;
-        }
-
-        button {
-            margin-bottom: 2em;
-        }
-    &lt;/style&gt;
-&lt;/head&gt;
-
-&lt;body&gt;
-    &lt;div id="aDiv"&gt;
-        FooBar-FooBar-FooBar-FooBar
-    &lt;/div&gt;
-    &lt;button id="aButton"&gt;
-        Check for overflow
-    &lt;/button&gt;
-
-    &lt;div id="anotherDiv"&gt;
-        FooBar-FooBar-FooBar-FooBar
-    &lt;/div&gt;
-    &lt;button id="anotherButton"&gt;
-        Check for overflow
-    &lt;/button&gt;
-&lt;/body&gt;
-&lt;script&gt;
-    var buttonOne = document.getElementById('aButton'),
-    buttonTwo = document.getElementById('anotherButton'),
-    divOne = document.getElementById('aDiv'),
-    divTwo = document.getElementById('anotherDiv');
-
-    //check to determine if an overflow is happening
-    function isOverflowing(element) {
-        return (element.scrollWidth &gt; element.offsetWidth);
-    }
-
-    function alertOverflow(element) {
-        if (isOverflowing(element)) {
-            alert('Contents are overflowing the container.');
-        } else {
-            alert('No overflows!');
-        }
-    }
-
-    buttonOne.addEventListener('click', function() {
-        alertOverflow(divOne);
-    });
-
-    buttonTwo.addEventListener('click', function() {
-        alertOverflow(divTwo);
-    });
-&lt;/script&gt;
-&lt;/html&gt;
-</pre>
-
-<h2 id="Specification" name="Specification">仕様書</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- <th scope="col">状態</th>
- <th scope="col">備考</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName("CSSOM View", "#dom-element-scrollwidth", "Element.scrollWidth")}}</td>
- <td>{{Spec2("CSSOM View")}}</td>
- <td>初回定義</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2>
-
-<p>{{Compat("api.Element.scrollWidth")}}</p>
-
-<h2 id="See_also" name="See_also">関連情報</h2>
-
-<ul>
- <li>{{domxref("Element.clientWidth")}}</li>
- <li>{{domxref("HTMLElement.offsetWidth")}}</li>
- <li><a href="/ja/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements">要素の寸法の決定</a></li>
-</ul>
diff --git a/files/ja/web/api/element/scrollwidth/index.md b/files/ja/web/api/element/scrollwidth/index.md
new file mode 100644
index 0000000000..3a8a21d6b8
--- /dev/null
+++ b/files/ja/web/api/element/scrollwidth/index.md
@@ -0,0 +1,115 @@
+---
+title: Element.scrollWidth
+slug: Web/API/Element/scrollWidth
+tags:
+ - API
+ - CSSOM View
+ - NeedsMarkupWork
+ - NeedsSpecTable
+ - プロパティ
+ - リファレンス
+browser-compat: api.Element.scrollWidth
+translation_of: Web/API/Element/scrollWidth
+---
+{{APIRef("DOM")}}
+
+**`Element.scrollWidth`** は読み取り専用のプロパティで、あふれたために画面に表示されない部分を含めた、要素の中身の幅の寸法です。
+
+`scrollWidth` の値は、水平スクロールバーを使用せずにすべてのコンテンツをビューポート内に合わせるために要素が必要とする最小幅に等しくなります。幅は {{domxref("Element.clientWidth", "clientWidth")}} と同じ方法で定めます。要素のパディングは含みますが、境界線、マージン、 (もしあれば) 垂直スクロールバーは含みません。これには {{cssxref("::before")}} または {{cssxref("::after")}} のような疑似要素の幅を含むことがあります。要素の内容が水平スクロールバーが必要なく合うのであれば、 `scrollWidth` は {{domxref("Element.clientWidth", "clientWidth")}} と等しくなります。
+
+> **Note:** このプロパティは値を整数値に丸めます。小数値が必要であれば、 {{ domxref("element.getBoundingClientRect()") }} を使用してください。
+
+## 構文
+
+```js
+var xScrollWidth = element.scrollWidth;
+```
+
+`xScrollWidth` はピクセル単位の `element` のコンテンツの幅です。
+
+## 例
+
+```html
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Example</title>
+ <style>
+ div {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+
+ #aDiv {
+ width: 100px;
+ }
+
+ button {
+ margin-bottom: 2em;
+ }
+ </style>
+ </head>
+
+ <body>
+ <div id="aDiv">
+ FooBar-FooBar-FooBar-FooBar
+ </div>
+ <button id="aButton">
+ Check for overflow
+ </button>
+
+ <div id="anotherDiv">
+ FooBar-FooBar-FooBar-FooBar
+ </div>
+ <button id="anotherButton">
+ Check for overflow
+ </button>
+ </body>
+ <script>
+ var buttonOne = document.getElementById('aButton'),
+ buttonTwo = document.getElementById('anotherButton'),
+ divOne = document.getElementById('aDiv'),
+ divTwo = document.getElementById('anotherDiv');
+
+ //check to determine if an overflow is happening
+ function isOverflowing(element) {
+ return (element.scrollWidth > element.offsetWidth);
+ }
+
+ function alertOverflow(element) {
+ if (isOverflowing(element)) {
+ alert('Contents are overflowing the container.');
+ } else {
+ alert('No overflows!');
+ }
+ }
+
+ buttonOne.addEventListener('click', function() {
+ alertOverflow(divOne);
+ });
+
+ buttonTwo.addEventListener('click', function() {
+ alertOverflow(divTwo);
+ });
+ </script>
+</html>
+```
+
+### 結果
+
+{{EmbedLiveSample('Example')}}
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Element.clientWidth")}}
+- {{domxref("HTMLElement.offsetWidth")}}
+- [要素の寸法の決定](/ja/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements)
diff --git a/files/ja/web/api/element/sethtml/index.md b/files/ja/web/api/element/sethtml/index.md
new file mode 100644
index 0000000000..f00984c539
--- /dev/null
+++ b/files/ja/web/api/element/sethtml/index.md
@@ -0,0 +1,73 @@
+---
+title: Element.setHTML()
+slug: Web/API/Element/setHTML
+tags:
+ - HTML 無害化 API
+ - メソッド
+ - Element.setHTML
+ - setHTML
+ - 実験的
+browser-compat: api.Element.setHTML
+translation_of: Web/API/Element/setHTML
+---
+{{SeeCompatTable}}{{DefaultAPISidebar("HTML Sanitizer API")}}
+
+**`setHTML()`** は {{domxref("Element")}} インターフェイスのメソッドで、 HTML の文字列を解釈して無害化し、この要素のサブツリーとして DOM に挿入します。
+信頼できない HTML の文字列を挿入するために、 {{domxref("Element.innerHTML")}} の代わりに使用してください。
+
+解釈処理では、現在の要素のコンテキストで無効な HTML 文字列の要素を削除し、無害化処理では、安全でない、あるいは不要な要素、属性、コメントを削除します。
+既定の `Sanitizer()` 設定では、{{HTMLElement("script")}} タグ、カスタム要素、コメントを含む XSS 関連の入力が取り除かれます。
+無害化の設定は {{domxref("Sanitizer.Sanitizer", "Sanitizer()")}} コンストラクターのオプションを使用してカスタマイズすることができます。
+
+> **Note:** 対象となる要素がまだない場合など、後の時点で DOM に文字列を挿入する必要がある場合は、このメソッドの代わりに {{domxref("Sanitizer.sanitizeFor()")}} を使用してください。
+
+## 構文
+
+```js
+setHTML(input, sanitizer)
+```
+
+### 引数
+
+- `input`
+ - : 無害化する HTML を定義する文字列です。
+- `sanitizer`
+ - : {{domxref("Sanitizer")}} で、入力されたどの要素を無害化するかを定義します。
+
+### 返値
+
+`undefined`
+
+### 例外
+
+なし。
+
+## 例
+
+以下のコードは、 HTML の文字列を無害化して、 id が `target` である `Element` に挿入する方法を示しています。
+
+```js
+const unsanitized_string = "abc <script>alert(1)</script> def"; // 無害化前の HTML の文字列
+const sanitizer = new Sanitizer(); // 既定の無害化
+
+// id が "target" の Element を取得し、無害化された文字列を設定します。
+document.getElementById("target").setHTML(unsanitized_string, sanitizer);
+
+// 結果 (文字列): "abc def"
+```
+
+> **Note:** この例では既定の無害化を使用しています。
+> {{domxref("Sanitizer/Sanitizer","Sanitizer")}} コンストラクターで無害化のオプションを構成することができます。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Sanitizer.sanitizeFor()")}}
+- {{domxref('HTML Sanitizer API')}}
diff --git a/files/ja/web/api/element/tagname/index.html b/files/ja/web/api/element/tagname/index.html
deleted file mode 100644
index e10c5acf43..0000000000
--- a/files/ja/web/api/element/tagname/index.html
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: element.tagName
-slug: Web/API/Element/tagName
-tags:
- - DOM
- - Gecko
- - Gecko DOM Reference
-translation_of: Web/API/Element/tagName
----
-<div>
- {{ApiRef}}</div>
-<h2 id="Summary" name="Summary">概要</h2>
-<p>要素の名前を返します。</p>
-<h2 id="Syntax" name="Syntax">構文</h2>
-<pre class="syntaxbox"><var>elementName</var> = element.tagName
-</pre>
-<ul>
- <li><code>elementName</code> : 現在の要素の名前を含む文字列</li>
-</ul>
-<h2 id="Notes" name="Notes">注記</h2>
-<p>XML (および XHTML など XML ベースの言語) では、tagName は大文字・小文字が保たれます。HTML では、<code>tagName</code> は標準的な大文字で要素名を返します。 <code>tagName</code> の値は <a href="/ja/docs/Web/API/Node.nodeName">nodeName</a> の値と同じになります。</p>
-<h2 id="Example" name="Example">例</h2>
-<p>以下のようなマークアップを想定します。</p>
-<pre class="brush:html">&lt;span id="born"&gt;When I was born...&lt;/span&gt;
-</pre>
-<p>上記 HTML に対し以下のスクリプトを実行した場合...</p>
-<pre class="brush:js">var span = document.getElementById("born");
-
-alert(span.tagName);
-</pre>
-<p>XHTML (および他の XML 形式) では、「span」という警告ダイアログが表示されます。HTML では、その代わりに「SPAN」と表示されます。</p>
-<h2 id="Specifications" name="Specifications">仕様</h2>
-<ul>
- <li><a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-104682815">DOM Level 2 Core: tagName</a></li>
- <li><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#apis-in-html-documents">HTML 5: APIs in HTML documents</a></li>
-</ul>
diff --git a/files/ja/web/api/element/tagname/index.md b/files/ja/web/api/element/tagname/index.md
new file mode 100644
index 0000000000..520ec73461
--- /dev/null
+++ b/files/ja/web/api/element/tagname/index.md
@@ -0,0 +1,63 @@
+---
+title: Element.tagName
+slug: Web/API/Element/tagName
+tags:
+ - API
+ - DOM
+ - DOM リファレンス
+ - Element
+ - Gecko
+ - NeedsBrowserCompatibility
+ - プロパティ
+ - 読み取り専用
+ - リファレンス
+ - tagName
+browser-compat: api.Element.tagName
+translation_of: Web/API/Element/tagName
+---
+{{ApiRef("DOM")}}
+
+**`tagName`** は {{domxref("Element")}} インターフェイスのプロパティで、呼び出された要素のタグ名を返します。
+
+例えば、この要素が {{HTMLElement("img")}} であれば、 `tagName` プロパティは `"IMG"` となります(HTML 文書の場合。 XML/XHTML 文書では大文字小文字が違うかもしれません)。
+
+## 構文
+
+```js
+elementName = Element.tagName;
+```
+
+### 値
+
+この要素のタグ名を示す文字列です。文字列が大文字であるかどうかは、文書型によって変わります。
+
+- HTML 文書を表す DOM ツリーでは、タグ名は常に大文字に正規化されます。例えば、 `tagName` が {{HTMLElement("div")}} 要素で呼び出された場合は、 `"DIV"` を返します。
+- XML の DOM ツリー内にある要素のタグ名は、元の XML ファイルに書かれているのと大文字小文字が同じになります。 XML 文書に `"<SomeTag>"` タグがあった場合、 `tagName` プロパティの値は `"SomeTag"` になります。
+
+{{domxref("Element")}} オブジェクトにおいては、 `tagName` の値は要素オブジェクトの継承元である {{domxref("Node")}} の {{domxref("Node.nodeName", "nodeName")}} プロパティの値と同じになります。
+
+## 例
+
+### HTML
+
+```html
+<span id="born">When I was born...</span>
+```
+
+### JavaScript
+
+```js
+var span = document.getElementById("born");
+console.log(span.tagName);
+```
+
+XHTML (および他の XML 形式) では、元の大文字小文字が保持されるので、元のタグ名が小文字で生成されている場合は `"span"` が出力されます。
+HTML では、元の文書を生成したときに大文字小文字のどちらが使われたかに関わらず、 `"SPAN"` と出力されます。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
diff --git a/files/ja/web/api/element/toggleattribute/index.md b/files/ja/web/api/element/toggleattribute/index.md
new file mode 100644
index 0000000000..5f30bb6566
--- /dev/null
+++ b/files/ja/web/api/element/toggleattribute/index.md
@@ -0,0 +1,97 @@
+---
+title: Element.toggleAttribute()
+slug: Web/API/Element/toggleAttribute
+tags:
+ - API
+ - Element
+ - メソッド
+ - リファレンス
+browser-compat: api.Element.toggleAttribute
+translation_of: Web/API/Element/toggleAttribute
+---
+{{APIRef("DOM")}}
+
+**`toggleAttribute()`** は {{domxref("Element")}} インターフェイスのメソッドで、この要素に対して論理属性をトグル切り替えします(存在する場合は取り除き、存在しない場合は追加します)。
+
+## 構文
+
+```js
+toggleAttribute(name);
+toggleAttribute(name, force);
+```
+
+### 引数
+
+- `name`
+ - : {{domxref("DOMString")}} で、トグル切り替えしたい属性の名前を指定します。 HTML 文書内の HTML 要素に対して `toggleAttribute()` が呼び出されるとばれると、属性名は自動的に全て小文字に変換されます。
+- `force` {{optional_inline}}
+ - : 論理値で、以下の効果があります。
+ - 指定されなかった場合、 `toggleAttribute` メソッドは `name` という名前の属性を「トグル切り替え」します。 — 存在すれば取り除き、存在しなければ追加します。
+ - true であった場合、 `toggleAttribute` メソッドは、 `name` という名前の属性を追加します。
+ - false であった場合、 `toggleAttribute` メソッドは `name` という名前の属性を取り除きます。
+
+### 返値
+
+**`name`** という属性が存在する状態になれば `true`、そうでなければ `false` となります。
+
+### 例外
+
+- `InvalidCharacterError` {{domxref("DOMException")}}
+ - : 指定された属性 `name` に、属性名として無効な文字が 1 文字以上含まれています。
+
+## 例
+
+次の例では、 `toggleAttribute()` を使って {{HTMLElement("input")}} の `disabled` 属性をトグル切り替えしています。
+
+### HTML
+
+```html
+<input value="text">
+<button>toggleAttribute("disabled")</button>
+```
+
+### JavaScript
+
+```js
+var button = document.querySelector("button");
+var input = document.querySelector("input");
+
+button.addEventListener("click", function(){
+ input.toggleAttribute("disabled");
+});
+```
+
+### 結果
+
+{{ EmbedLiveSample('Example', '300', '50') }}
+
+{{DOMAttributeMethods}}
+
+## ポリフィル
+
+```js
+if (!Element.prototype.toggleAttribute) {
+ Element.prototype.toggleAttribute = function(name, force) {
+ if(force !== void 0) force = !!force
+
+ if (this.hasAttribute(name)) {
+ if (force) return true;
+
+ this.removeAttribute(name);
+ return false;
+ }
+ if (force === false) return false;
+
+ this.setAttribute(name, "");
+ return true;
+ };
+}
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}