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

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

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

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

jQuery

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

CSS

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

Q&A

解決済

1回答

3304閲覧

一回のアクションでアコーディオンを複数動かしたい(CSS)

yamady

総合スコア176

JavaScript

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

jQuery

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

CSS

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

0グッド

0クリップ

投稿2017/11/24 12:06

編集2017/11/24 13:01

いつもお世話になっております。

前回、こちらの質問にて、『一つのページの中で複数実現したいのですが、2つ以上の「もっと読む」を実装すると、2つめのボタンを押しても1つめのものが反応してしまいます。』とご質問させていただいたのですが、実際には、1つめのボタンを押して、すべての<ul>タグで囲まれた全ての「もっと読む」以下が動くようにしたいと考えています。

試してみたこととして、accordion-boxクラス以下を全て囲んでみたりしてみたのですが、デザインが崩れてしまうばかりでした。CSSだけで難しければ、jQueryを使うのもありだと考えています。
初心者で申し訳ありませんが、お助けくださいませ。。。

HTML

1<ul> 2 <li> 3 <div class="accordion-box"> 4 <input id="ac00" type="checkbox"> 5 <label for="ac00"></label> 6 <div class="accordion-container"> 7 <h3>タイトル</h3> 8 <p>世界中どこを探してもなかったので作りました。</p> 9 <p>jsを使っていないのでコンフリクトすることはありません。</p> 10 <p>スマホにも対応。iPhone4くらいの小さい画面でも大丈夫です。</p> 11 <p>閉じるボタンは要らないときは「.accordion-box input:checked + label」のdisplay:noneを有効にしてください。</p> 12 </div><!— accordion-container --> 13 </div><!— accordion-box --> 14 </li> 15 16 <li> 17 <div class="accordion-box"> 18 <input id="ac01" type="checkbox"> 19 <label for="ac0"></label> 20 <div class="accordion-container"> 21 <h3>タイトル</h3> 22 <p>世界中どこを探してもなかったので作りました。</p> 23 <p>jsを使っていないのでコンフリクトすることはありません。</p> 24 <p>スマホにも対応。iPhone4くらいの小さい画面でも大丈夫です。</p> 25 <p>閉じるボタンは要らないときは「.accordion-box input:checked + label」のdisplay:noneを有効にしてください。</p> 26 </div><!— accordion-container --> 27 </div><!— accordion-box --> 28 </li> 29 30 <li> 31 <div class="accordion-box"> 32 <input id="ac02" type="checkbox"> 33 <label for="ac02"></label> 34 <div class="accordion-container"> 35 <h3>タイトル</h3> 36 <p>世界中どこを探してもなかったので作りました。</p> 37 <p>jsを使っていないのでコンフリクトすることはありません。</p> 38 <p>スマホにも対応。iPhone4くらいの小さい画面でも大丈夫です。</p> 39 <p>閉じるボタンは要らないときは「.accordion-box input:checked + label」のdisplay:noneを有効にしてください。</p> 40 </div><!— accordion-container --> 41 </div><!— accordion-box --> 42 </li> 43</ul>

CSS

1.accordion-box { 2 position: relative; 3} 4.accordion-box label { 5 height: 140px; /* グラデーションの高さ */ 6 cursor: pointer; 7 text-align: center; 8 font-size: 12px; 9 position: absolute; 10 bottom: 0; 11 width: 100%; 12 13 /* 以下グラデーションは「背景が白」に併せて設定しています */ 14 background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.95) 90%); 15 background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.95) 90%); 16 background: -o-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.95) 90%); 17 background: -ms-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.95) 90%); 18 background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.95) 90%); 19} 20.accordion-box input:checked + label { 21 background: inherit; /* 開いた時には背景グラデーションを消す */ 22} 23.accordion-box label:after { 24 content: "続きをよむ"; /* ラベルの文字 */ 25 letter-spacing: .05em; 26 line-height: 2.5rem; 27 position: absolute; 28 bottom: 20px; 29 left: 50%; 30 -webkit-transform: translate(-50%, 0); 31 transform: translate(-50%, 0); 32 color: #fff; 33 background-color: #000; 34 width: 18.75rem; 35 -webkit-border-radius: 20px; 36 -moz-border-radius: 20px; 37 border-radius: 20px; 38} 39.accordion-box label:before { 40 content: "↓"; 41 font-weight: 700; 42 position: absolute; 43 bottom: 30px; 44 left: 50%; 45 -webkit-transform: translate(-140px, 0); 46 transform: translate(-140px, 0); 47 background-color: #fff; 48 z-index: 1; 49 -webkit-border-radius: 100%; 50 -moz-border-radius: 100%; 51 border-radius: 100%; 52 width: 20px; 53 height: 20px; 54 line-height: 20px; 55} 56.accordion-box input { 57 display: none; 58} 59.accordion-box .accordion-container { 60 overflow: hidden; 61 height: 200px; /* 開く前に見えている部分の高さ */ 62 -webkit-transition: all 0.1s; 63 -moz-transition: all 0.1s; 64 -ms-transition: all 0.1s; 65 -o-transition: all 0.1s; 66 transition: all 0.1s; 67} 68 69 70.accordion-box input:checked + label { 71 /* display: none ; 閉じるボタンは要らないとき */ 72} 73.accordion-box input:checked + label:after { 74 content: "閉じる"; 75} 76.accordion-box input:checked + label:before { 77 content: "↑"; 78} 79.accordion-box input:checked ~ .accordion-container { 80 height: auto; 81 padding-bottom: 80px; /* 閉じるボタンのbottomからの位置 */ 82 -webkit-transition: all 0.1s; 83 -moz-transition: all 0.1s; 84 -ms-transition: all 0.1s; 85 -o-transition: all 0.1s; 86 transition: all 0.1s; 87}

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

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

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

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

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

kei344

2017/11/24 12:11

CSSも提示してください。
guest

回答1

0

ベストアンサー

とりあえず <label for="ac0"></label><label for="ac01"></label> です。

「全ての」が「どれを押しても全部開く」ということであれば、
0. <input id="ac00" type="checkbox"> をul要素の直前に移動
0. label要素の for を全て "ac00" に変更
0. CSSを変更

CSS

1input:checked + ul .accordion-box label:after { 2 content: "閉じる"; 3} 4input:checked + ul .accordion-box label:before { 5 content: "↑"; 6} 7input:checked + ul .accordion-box .accordion-container { 8 height: auto; 9 padding-bottom: 80px; /* 閉じるボタンのbottomからの位置 */ 10 -webkit-transition: all 0.1s; 11 -moz-transition: all 0.1s; 12 -ms-transition: all 0.1s; 13 -o-transition: all 0.1s; 14 transition: all 0.1s; 15} 16```**動くサンプル:**[https://jsfiddle.net/kdm9y4ng/1/](https://jsfiddle.net/kdm9y4ng/1/)

投稿2017/11/24 13:42

kei344

総合スコア69407

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

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

yamady

2017/11/25 01:12

ご丁寧にありがとうございます。 当初のCSSに入っていた「~」など分からず使っていました。 やはりコピーするだけではダメですね、、 非常に助かりました!本当に感謝です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問