diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
commit | 33058f2b292b3a581333bdfb21b8f671898c5060 (patch) | |
tree | 51c3e392513ec574331b2d3f85c394445ea803c6 /files/ja/web/html/element/details | |
parent | 8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff) | |
download | translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2 translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip |
initial commit
Diffstat (limited to 'files/ja/web/html/element/details')
-rw-r--r-- | files/ja/web/html/element/details/index.html | 280 |
1 files changed, 280 insertions, 0 deletions
diff --git a/files/ja/web/html/element/details/index.html b/files/ja/web/html/element/details/index.html new file mode 100644 index 0000000000..13770b1b37 --- /dev/null +++ b/files/ja/web/html/element/details/index.html @@ -0,0 +1,280 @@ +--- +title: '<details>: 詳細折りたたみ要素' +slug: Web/HTML/Element/details +tags: + - HTML + - HTML 対話的要素 + - 'HTML:フローコンテンツ' + - 'HTML:対話型コンテンツ' + - 'HTML:知覚可能コンテンツ' + - details + - ウェブ + - リファレンス + - 要素 +translation_of: Web/HTML/Element/details +--- +<div>{{HTMLRef}}</div> + +<p><span class="seoSummary"><strong>HTML の詳細折りたたみ要素</strong> (<strong><code><details></code></strong>) は、ウィジェットが open 状態になった時のみ情報が表示される折りたたみウィジェットを作成します。</span>概要やラベルは {{HTMLElement("summary")}} 要素を使用して提供することができます。</p> + +<p>折りたたみウィジェットはふつう、回転して開閉状態を示す小さな三角形を使用し、その隣のラベルと共に画面上に表現されます。 <code><details></code> 要素の最初の子要素が <code><summary></code> の場合は、 <code><summary></code> 要素が折りたたみウィジェットのラベルとして使用されます。</p> + +<div>{{EmbedInteractiveExample("pages/tabbed/details.html", "tabbed-shorter")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<div class="note"> +<p><strong>メモ:</strong> ウィジェットの開閉を回転する (ねじる) 三角形で表すのが一般的な使い方なので、このウィジェットはツイスティー (twisties) と呼ばれることがあります。</p> +</div> + +<p><code><details></code> ウィジェットは2つの状態のうち1つを取ります。既定の<em>閉じた</em>状態は <code><summary></code> を使用して指定されたラベル文字列 (または{{Glossary("user agent", "ユーザーエージェント")}}が定義した既定の文字列) とウィジェット自身による三角形だけを表示します。これは次のように表示されます。</p> + +<figure style="margin: 1em 0; padding: 1em; border: 1px solid black; box-shadow: 0 0 4px 1px black; width: 640px;"><img alt="閉じた <details> ウィジェットのスクリーンショット。黒い左向きの三角形が「System Requirements」のテキストの右側にあります。" src="https://mdn.mozillademos.org/files/15717/details-closed.png" style="height: 26px; width: 191px;"></figure> + +<p>ここでは既定の閉じた状態であり、折りたたみウィジェットと "System Requirements" というラベルが表示されています。ユーザーがこのウィジェットをクリックするか、フォーカスしてスペースバーを押すと、「ねじれて」開き、コンテンツが展開されて次のようになります。</p> + +<figure style="margin: 1em 0; padding: 1em; border: 1px solid black; box-shadow: 0 0 4px 1px black; width: 640px;"><img alt="開いた <details> ウィジェットのスクリーンショット。三角形は下向きになり、「System Requirements」とは何かの詳細説明が表示されています。” means is shown." src="https://mdn.mozillademos.org/files/15718/details-open.png" style="height: 96px; width: 640px;"></figure> + +<p>ここから、 CSS を使用して折りたたみウィジェットの外見を変更することができ、また {{htmlattrxref("open", "details")}} の値を設定したり削除したりすることにより、プログラムから開いたり閉じたりすることができます。</p> + +<p>ウィジェットが閉じている時、折りたたみの三角形と概要が表示できるだけの高さしかありません。ウィジェットが開くと、要素は中に含まれた詳細が表示できるだけの大きさに拡大されます。</p> + +<div class="note"> +<p><strong>メモ:</strong> 残念なことに、現時点では開いたり閉じたりする間のアニメーションを行う組込みの方法はありません。</p> +</div> + +<p>完全な標準互換の実装では、 CSS の <code>{{cssxref("display")}}: list-item</code> が自動的に {{HTMLElement("summary")}} に適用されます。この表示方法はカスタマイズすることができます。詳しくは{{anch("Customizing the disclosure widget", "折りたたみウィジェットのカスタマイズ")}}を参照してください。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/ja/docs/Web/HTML/Content_categories">コンテンツカテゴリ</a></th> + <td><a href="/ja/docs/Web/HTML/Content_categories#Flow_content">フローコンテンツ</a>、区分化ルート、対話型コンテンツ、知覚可能コンテンツ</td> + </tr> + <tr> + <th scope="row">許可されている内容</th> + <td>1つの {{HTMLElement("summary")}} 要素と、それに続く <a href="/ja/docs/Web/HTML/Content_categories#Flow_content">フローコンテンツ</a></td> + </tr> + <tr> + <th scope="row">タグの省略</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">許可されている親要素</th> + <td><a href="/ja/docs/Web/HTML/Content_categories#Flow_content">フローコンテンツ</a>を受け入れるすべての要素</td> + </tr> + <tr> + <th scope="row">許可されている ARIA ロール</th> + <td>なし</td> + </tr> + <tr> + <th scope="row">DOM インターフェイス</th> + <td>{{domxref("HTMLDetailsElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Attributes" name="Attributes">属性</h2> + +<p>この要素は<a href="/ja/docs/Web/HTML/Global_attributes" rel="internal">グローバル属性</a>を持ちます。</p> + +<dl> + <dt>{{htmlattrdef("open")}}</dt> + <dd>この論理属性は、ページ読み込み時に詳細内容、つまり <code><details></code> 要素の内容が表示されるよう指定するものです。既定値は <code>false</code> であり、詳細内容は表示しません。</dd> +</dl> + +<h2 id="Events" name="Events">イベント</h2> + +<p>HTML で対応している通常のイベントに加えて、 <code><details></code> 要素は {{event("toggle")}} イベントに対応しており、開閉状態が変化するたびに <code><details></code> 要素が呼び出されます。イベントは状態が変化した<em>後</em>に送信され、もしブラウザーがイベントを送信する前に状態が2回以上変化しても、イベントは合体して1回しか送信されません。</p> + +<p>ウィジェットの状態が変化したことを検出するために、 <code>toggle</code> イベントをリスンすることができます。</p> + +<pre class="brush: js">details.addEventListener("toggle", event => { + if (details.open) { + /* 要素が開いた方に切り替わった */ + } else { + /* 要素が閉じた方に切り替わった */ + } +});</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="A_simple_disclosure_example" name="A_simple_disclosure_example">単純な折りたたみの例</h3> + +<p>この例では <code><details></code> 要素を summary なしで表示します。</p> + +<pre class="brush: html"><details> + <p>Requires a computer running an operating system. The computer + must have some memory and ideally some kind of long-term storage. + An input device as well as some form of output device is + recommended.</p> +</details></pre> + +<p>このような場合、ブラウザーは既定の概要文字列(ふつうは「概要」)を使用します。あなたのブラウザーでは次のように表示されます。</p> + +<p>{{EmbedLiveSample("A_simple_disclosure_example", 650, 150)}}</p> + +<h3 id="Providing_a_summary" name="Providing_a_summary">概要の提供</h3> + +<p>この例では <code><details></code> の中で {{HTMLElement("summary")}} 要素を使用して、上記の例に概要を追加したものです。次のようになります。</p> + +<pre class="brush: html"><details> + <summary>System Requirements</summary> + <p>Requires a computer running an operating system. The computer + must have some memory and ideally some kind of long-term storage. + An input device as well as some form of output device is + recommended.</p> +</details></pre> + +<p>この HTML の結果は次のようになります。</p> + +<p>{{EmbedLiveSample("Providing_a_summary", 650, 150)}}</p> + +<h3 id="Creating_an_open_disclosure_box" name="Creating_an_open_disclosure_box">折りたたみボックスの作成</h3> + +<p><code><details></code> ボックスを開いた状態にするために、論理値の <code>open</code> 属性を追加しましょう。</p> + +<pre class="brush: html"><details open> + <summary>System Requirements</summary> + <p>Requires a computer running an operating system. The computer + must have some memory and ideally some kind of long-term storage. + An input device as well as some form of output device is + recommended.</p> +</details></pre> + +<p>これだけで、次のような結果になります。</p> + +<p>{{EmbedLiveSample("Creating_an_open_disclosure_box", 650, 150)}}</p> + +<h3 id="Customizing_the_appearance" name="Customizing_the_appearance">表示方法のカスタマイズ</h3> + +<p>では、いくらか CSS を適用して折りたたみボックスの外見をカスタマイズしましょう。</p> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">details { + font: 16px "Open Sans", "Arial", sans-serif; + width: 620px; +} + +details > summary { + padding: 2px 6px; + width: 15em; + background-color: #ddd; + border: none; + box-shadow: 3px 3px 4px black; +} + +details > p { + border-radius: 0 0 10px 10px; + background-color: #ddd; + padding: 2px 6px; + margin: 0; + box-shadow: 3px 3px 4px black; +} +</pre> + +<p>この CSS はタブ風のインターフェイスに似た外見を作り出し、クリックするとタブが開いてコンテンツを表示します。</p> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><details> + <summary>System Requirements</summary> + <p>Requires a computer running an operating system. The computer + must have some memory and ideally some kind of long-term storage. + An input device as well as some form of output device is + recommended.</p> +</details></pre> + +<h4 id="Result" name="Result">結果</h4> + +<p>{{EmbedLiveSample("Customizing_the_appearance", 650, 150)}}</p> + +<h3 id="Customizing_the_disclosure_widget" name="Customizing_the_disclosure_widget">折りたたみウィジェットのカスタマイズ</h3> + +<p>折りたたみの三角形ウィジェット自身はカスタマイズできますが、これは最近標準化され、広くは対応されていません。さらに、この対応方法については複数の種類があり、標準はそれに基づいて決定されましたので、しばらくの間はカスタマイズのために複数の方法を使用する必要があります。</p> + +<p>{{HTMLElement("summary")}} 要素は {{cssxref("list-style")}} 一括指定プロパティや、 {{cssxref("list-style-type")}} などの個別指定プロパティに対応しており、折りたたみウィジェットを三角形から選択したものに変更することができます (ふつうは {{cssxref("list-style-image")}}) を使用します。例えば、折りたたみウィジェットのアイコンは <code>list-style: none</code> と設定することで削除することができます。</p> + +<p>しかし、 Chrome はまだこれに対応していませんので、このブラウザーでは外見をカスタマイズするために、非標準の <code>::-webkit-details-marker</code> <a href="/ja/docs/Web/CSS/Pseudo-elements">疑似要素</a>を使用する必要があります。</p> + +<h4 id="CSS_2">CSS</h4> + +<pre class="brush: css; highlight:[12, 15-17]">details { + font: 16px "Open Sans", "Arial", sans-serif; + width: 620px; +} + +details > summary { + padding: 2px 6px; + width: 15em; + background-color: #ddd; + border: none; + box-shadow: 3px 3px 4px black; + list-style: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details > p { + border-radius: 0 0 10px 10px; + background-color: #ddd; + padding: 2px 6px; + margin: 0; + box-shadow: 3px 3px 4px black; +} +</pre> + +<p>この CSS はタブ風のインターフェイスに似た外見を作り出し、クリックするとタブが開いてコンテンツを表示します。</p> + +<h4 id="HTML_2">HTML</h4> + +<pre class="brush: html"><details> + <summary>System Requirements</summary> + <p>Requires a computer running an operating system. The computer + must have some memory and ideally some kind of long-term storage. + An input device as well as some form of output device is + recommended.</p> +</details></pre> + +<h4 id="Result_2" name="Result_2">結果</h4> + +<p>{{EmbedLiveSample("Customizing_the_disclosure_widget", 650, 150)}}</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('HTML WHATWG', 'interactive-elements.html#the-details-element', '<details>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', 'interactive-elements.html#the-details-element', '<details>')}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Initial definition</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("html.elements.details")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTMLElement("summary")}}</li> +</ul> |