質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

6788閲覧

アコーディオンメニューが崩れる

fu-11

総合スコア10

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2015/08/16 03:46

編集2015/08/16 06:01

下記サイトをさ参考にアコーディオンメニューを作ったのですが、空白部分が出来てしまいます。
参考サイト

html

<dt>アコーディオンメニュー1</dt> <dd>アコーディオンメニューが開く。</dd> <dd><a href="xxx.html">hoge</a></dd> <dd><a href="xxx.html">hogehoge</a></dd> <dt>アコーディオンメニュー2</dt> <dd>アコーディオンメニューが開く。</dd> <dd><a href="xxx.html">hoge</a></dd> <dd><a href="xxx.html">hogehoge</a></dd> <dd><a href="xxx.html">hoge</a></dd> <dd><a href="xxx.html">hogehoge</a></dd> <dt>アコーディオンメニュー3</dt> <dd>アコーディオンメニューが開く。</dd> </dl>

css

#acMenu dt{ display:block; width:300px; height:50px; line-height:50px; text-align:center; border:#666 1px solid; border-radius:5px; cursor:pointer; } #acMenu dd{ background:#f2f2f2; width:300px; height:50px; line-height:50px; text-align:center; border:#666 1px solid; display:none; }

javascript

$("#acMenu dt").on("click", function() { $(this).nextUntil("dt","dd").slideToggle(); }); });

追記
私のサイトはここです。サイドバーの下の方にアコーディオンメニューがあります。

隙間の問題は解決しましたが、アコーディオンメニューが最初から全て開ききっていて、クリックして開くようにしたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

dd 要素に margin: 0; を入れれば、margin がなくなります。
蛇足ですが、JavaScript 無効環境でコンテンツが表示されないので dd { display: none; } は jQuery で実装したほうが良いと思います。
http://jsfiddle.net/6qup2ebc/2/

JavaScript

1jQuery(function (jQuery) { 2 jQuery('#acMenu dd').slideToggle(); 3 jQuery('#acMenu dt').on('click', function () { 4 jQuery(this).nextUntil('dt','dd').slideToggle(); 5 }); 6});

投稿2015/08/16 03:56

編集2015/08/16 06:30
think49

総合スコア18162

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fu-11

2015/08/16 05:01

回答ありがとうございます。think49さんのとおりにしましたが、何故か出来ませんでした。問題が起きた、私のサイトのURLを載せましたので、もし良かったらご確認下さい。アコーディオンメニューはサイドバー下の方にあります。 http://fujiroomblog.blog.fc2.com/
think49

2015/08/16 07:05 編集

元々のコードは #acMenu より <script> が後にあることが期待していた為、お互いの位置が逆転すると、JavaScript コード実行時点で #acMenu が読み込まれていない為に実行されません。 <script> を </body> 直前に持っていくか、親記事に載せたコード(追記しました)を使ってください。
fu-11

2015/08/16 07:47

解決しました。ありがとうございます!
guest

0

ベストアンサー

先ほど回答したものです。

僕だったらこういう実装にします。

html

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <style> 7 .toggle-trigger{ 8 display:block; 9 width:300px; 10 height:50px; 11 line-height:50px; 12 text-align:center; 13 border:#666 1px solid; 14 border-radius:5px; 15 cursor:pointer; 16 } 17 .toggle-contents{ 18 display:none; 19 } 20 .toggle-contents > div{ 21 background:#f2f2f2; 22 width:300px; 23 height: 50px; 24 line-height:50px; 25 text-align:center; 26 border:#999 1px solid; 27 } 28 </style> 29 <script src="https://code.jquery.com/jquery-1.11.3.js"></script> 30</head> 31<body> 32 <div class="toggle-trigger js-trigger">ここを押すと下が開く</div> 33 <div class="toggle-contents"><!-- display:noneにしておく; --> 34 <div>アコーディオンの中身</div> 35 <div>アコーディオンの中身</div> 36 <div>アコーディオンの中身</div> 37 </div> 38 <div class="toggle-trigger js-trigger">ここを押すと下が開く</div> 39 <div class="toggle-contents"><!-- display:noneにしておく; --> 40 <div>アコーディオンの中身</div> 41 <div>アコーディオンの中身</div> 42 <div>アコーディオンの中身</div> 43 </div> 44 <div class="toggle-trigger js-trigger">ここを押すと下が開く</div> 45 <div class="toggle-contents"><!-- display:noneにしておく; --> 46 <div>アコーディオンの中身</div> 47 <div>アコーディオンの中身</div> 48 <div>アコーディオンの中身</div> 49 </div> 50 <script> 51 $('.js-trigger').on('click', function(){ 52 $(this).next().slideToggle(); 53 }) 54 </script> 55</body> 56</html>

投稿2015/08/16 06:21

編集2015/08/16 06:22
MasakazuFukami

総合スコア1869

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MasakazuFukami

2015/08/16 06:22

このまま保存していただくとデバッグできると思います
guest

0

サイトを確認させていただいたのですが、隙間がない状況です!どこを修正したらよいでしょうか?

投稿2015/08/16 05:54

MasakazuFukami

総合スコア1869

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fu-11

2015/08/16 06:00

クリックして開くようにしたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問