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

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

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

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

CSS

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

Q&A

解決済

1回答

9283閲覧

CSSのみのアコーディオンメニューに、別途「閉じる」の表示を付けてそこを押してもメニューを閉じたい

takeaduma

総合スコア44

HTML

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

CSS

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

0グッド

0クリップ

投稿2015/05/14 09:08

タイトル通りではありますが、サイトを参考にアコーディオンメニューを作成しました。

アコーディオンメニューを開くと、写真とテキストが表示されるようになっています。
普段であれば、再度メニューをクリックすると中身が閉じられると思いますが、
開いた状態の所にも「閉じる」のボタンを付けて、メニューが閉じられるように実装したいです。

<label for="Panel1">タイトル1</label> <input type="checkbox" id="Panel1" class="on-off" checked/> <ul> <div class="txt"> <p></p> /*****ここらへんに「閉じる」を付けて該当のメニューを閉じる*****/ </div> </ul> <label for="Panel2">タイトル2</label> <input type="checkbox" id="Panel2" class="on-off" /> <ul> <div class="txt"> <p></p> </div> </ul>

CSSは以下のようになっています。
label {
color: #000;
padding: 15px 0 15px 25px;
display: block;
border: 1px solid #fff;
font-weight: bold;
margin-bottom: 10px;
}

input[type="checkbox"].on-off{
display: none;
}

.menu ul {
-webkit-transition: all 0.5s;
-moz-transition: all 0.5s;
-ms-transition: all 0.5s;
-o-transition: all 0.5s;
transition: all 0.5s;
margin: 0;
padding: 0;
list-style: none;
}

input[type="checkbox"].on-off + ul{
height: 0;
overflow: hidden;
}

input[type="checkbox"].on-off:checked + ul{
height: auto;
margin: 20px 0;
}

閉じるボタンを作るのに、divで囲って等やっていますが、お手上げになってしまったためご教授頂きたく思います。
JQueryは使わない方向で考えているためCSSの実装のみで行いたいです。
宜しくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

HTMLもCSSもちょっとだけかじったくらいなので無理矢理な提案だったら申し訳ありません。
私なら

lang

1 <label for="Panel数字">タイトル1</label> 2 <input type="checkbox" id="Panel数字" class="on-off" checked/>

このように再度<label>を使って対処します(初心者なのでいけないことでしたらすみません)
ちょっと自分のサイトでもテストしてみましたが好きなところにいれこんだら閉じました。
既存のCSSをそのまま使うとlabelのデザインが適用されてしまいますので以下のように<label>以外の要素にclassなどを適用して装飾しました。

lang

1<label><p class="">タイトルや閉じる文字(閉じるは<span class=""></span>でも)</p></label> 2

としました。

<p></p>は<div>要素でも出来ると思います。 CSSでlabelには「display: block; 」を残して(ここらへんは詳しく見ていないので残したほうがいいのか悪いのか把握していません。試してみてください。) <p>や<span>などに適用できるclass指定で装飾すればなんとかできるかもしれません。

「閉じる」をつける一つの案なので色々雑で申し訳ありません。

投稿2015/05/14 16:35

huhunkaad

総合スコア10

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

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

takeaduma

2015/05/18 01:23

お返事が遅くなり、申し訳ございません。 ご教授頂けた回答を試してみたところ、希望通りの動き方になりました! 最終的に閉じる、の部分にはborderをつけたくなかったので、最初のlabelにclassを指定しました。 本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問