Webデザイン

【PR】を含みます。

【CSS不要】HTMLのみでアコーディオン(開閉ボタン)を実装する方法

HTMLのみでアコーディオンを実装する方法

HTMLのみでアコーディオンメニューを実装する方法を紹介します。

HTML5で導入されたdetailsタグとsummaryタグを使用してアコーディオンメニューを実装します。

アコーディオンをHTMLとCSSのみで実装する方法は以下の記事で紹介してます。

あわせて読む
アコーディオンメニュー
【HTML・CSS】アコーディオンメニューをHTMLとCSSのみで実装する方法

もくじ【単体用】アコーディオン(折りたたみメニュー)【単体用】HTML・CSS【単体用】アコーディオン(折りたたみメニュー)を複数利用する場合【2段用】アコーディオン(折りたたみメニュー)【2段用】H ...

アコーディオンをjQueryで実装する方法は以下の記事で紹介してます。

あわせて読む
jQuery アコーディオンメニューを作成する方法
【jQuery】アコーディオン(開閉ボタン)を実装する方法

もくじjQueryを使用したアコーディオンサンプルjQueryを使用したアコーディオンコピペ用コード使用方法 Q&A動かないのですが、どうすれば良いですか?アコーディオンの追加方法は?レスポンシブに対 ...

アコーディオンをJavaScriptで実装する方法は以下の記事で紹介してます。

あわせて読む
コピペで使える!アコーディオンメニュー
【JavaScript】jQuery未使用でアコーディオン(開閉ボタン)を実装する方法

もくじJavaScriptを使用したアコーディオンサンプルJavaScriptを使用したアコーディオンコピペ用コード使用方法 Q&Aアコーディオンの追加方法は?一つ目のアコーディオンを開いた状態にする ...

【サンプル】HTMLのみでアコーディオンメニューを実装

Q. 質問1
A. 回答1
Q. 質問2
A. 回答2

【実装コード】HTMLのみでアコーディオンメニューを実装

HTML
Copy
  1. <details>
  2.   <summary>Q. 質問1</summary>
  3.   <p>A. 回答1</p>
  4. </details>
  5. <details>
  6.   <summary>Q. 質問2</summary>
  7.   <p>A. 回答2</p>
  8. </details>

detailsタグとsummaryタグにCSS当ててデザインを調整

HTMLのみだと単調なため、detailsタグとsummaryタグにCSSを当てます。

アコーディオンが開いているときdetailsタグにopen属性が自動で付与されます。

この特性を利用して「▶」部分非表示にして、閉まっているときは「+」、開いているときは「‐」になるようにCSSで調整します。

【サンプル】CSSで調整したアコーディオンメニュー

Q. 質問1
A. 回答1
Q. 質問2
A. 回答2

【実装コード】CSSで調整したアコーディオンメニュー

HTML
Copy
  1. <details>
  2.   <summary>Q. 質問1</summary>
  3.   <div class="details_content">A. 回答1</div>
  4. </details>
  5. <details>
  6.   <summary>Q. 質問2</summary>
  7.   <div class="details_content">A. 回答2</div>
  8. </details>
CSS
Copy
  1. details {
  2.   margin-bottom: 20px;
  3.   border: solid 1px #f09896;
  4. }
  5. summary {
  6.   list-style: none; /* ?を非表示 */
  7.   cursor: pointer;
  8.   position: relative;
  9.   padding: 10px 35px 10px 20px;
  10. }
  11. summary::-webkit-details-marker {
  12.   display: none;
  13. }
  14. summary::before {
  15.   content: "";
  16.   width: 14px;
  17.   height: 0;
  18.   border-top: solid 2px #f09896;
  19.   position: absolute;
  20.   top: 50%;
  21.   right: 20px;
  22.   transform: translateY(-50%);
  23. }
  24. summary::after {
  25.   content: "";
  26.   width: 0;
  27.   height: 14px;
  28.   border-right: solid 2px #f09896;
  29.   position: absolute;
  30.   top: 50%;
  31.   right: 26px;
  32.   transform: translateY(-50%);
  33. }
  34. details[open] summary::after {
  35.   opacity: 0;
  36. }
  37. .details_content {
  38.   padding: 0 20px 10px;
  39. }

HTML・CSS入門におすすめの1冊

アイコン画像

もみじ

Web製作未経験でも読みやすい構成で、初学者でも安心して学習することができます。

実践的な内容を学ぶことができ解説も丁寧で分かりやすく、基礎的な内容はこの1冊で学ぶことができます。

アコーディオンをHTMLとCSSのみで実装する方法は以下の記事で紹介してます。

あわせて読む
アコーディオンメニュー
【HTML・CSS】アコーディオンメニューをHTMLとCSSのみで実装する方法

もくじ【単体用】アコーディオン(折りたたみメニュー)【単体用】HTML・CSS【単体用】アコーディオン(折りたたみメニュー)を複数利用する場合【2段用】アコーディオン(折りたたみメニュー)【2段用】H ...

アコーディオンをjQueryで実装する方法は下記記事で紹介してます。

あわせて読む
jQuery アコーディオンメニューを作成する方法
【jQuery】アコーディオン(開閉ボタン)を実装する方法

もくじjQueryを使用したアコーディオンサンプルjQueryを使用したアコーディオンコピペ用コード使用方法 Q&A動かないのですが、どうすれば良いですか?アコーディオンの追加方法は?レスポンシブに対 ...

アコーディオンをJavaScriptで実装する方法は下記記事で紹介してます。

あわせて読む
コピペで使える!アコーディオンメニュー
【JavaScript】jQuery未使用でアコーディオン(開閉ボタン)を実装する方法

もくじJavaScriptを使用したアコーディオンサンプルJavaScriptを使用したアコーディオンコピペ用コード使用方法 Q&Aアコーディオンの追加方法は?一つ目のアコーディオンを開いた状態にする ...

-Webデザイン
-