HTML
details/summaryが開閉しない
summary要素が正しく配置されていない
こんな症状
<details>タグを書いたのにクリックしても開閉しない。アコーディオンUIを作ろうとしたときに起きやすいよ。
まず試す
<details><summary>タイトル</summary>…</details> のように、summary を details の最初の直接の子にする。
html
<details>
<summary>詳細</summary>
<p>内容</p>
</details>これで直らなければ、下の「自分のケース」を確認。
🔍 自分のケースはどれ?
- ✓summary が無い/別要素で囲んでいる
→ summary を details の直接の最初の子に置く。 - ✓クリックが効かない
→ CSSで pointer-events:none / user-select:none が当たっていないか確認する。 - ✓JSで止めている
→ click で preventDefault() していないか確認する。
なぜ起きる?
details要素が正しく動作するには、直接の子要素としてsummary要素が必要だよ。summaryがdetailsの直接の子になっていない(別の要素で囲まれている等)場合や、CSSでpointer-events: noneが指定されている場合、クリックイベントが無効になって開閉しないんだ。
✕ エラーが起きるコード
<details><p>内容</p></details>
<!-- summary がない -->✓ 直したコード
<details><summary>詳細</summary><p>内容</p></details>✅ 直ったか確認
summary をクリックして内容が開閉すればOK。
この解決法は役立ちましたか?
🔗 関連するエラー
- 画像が表示されない — 画像パスが間違っている
- ページのレイアウトが崩れる — タグの閉じ忘れ
- リンクをクリックしても何も起きない — href 属性の書き忘れ
- 文字化けする — charset の指定がない
- フォームの送信ボタンが動かない — type="submit" の書き忘れ
🔗 別カテゴリの関連エラー
📖 この問題を学べるレッスン
✏️ 手を動かして練習
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- HTMLとは?初心者向けにわかりやすく解説 — タグの書き方・ページ構造の基本
- HTMLのパス(相対パス・絶対パス)の書き方 — パスの書き方を初心者向けに解説