前提・実現したいこと
横並びにした画像の中のボタンを押すと、テキストが表示されるようにしたいです。
テキストの位置は、横並びの要素の外(下側の中央)に表示したいと思っています。
なかなかうまくいかないので教えていただけないでしょうか。
発生している問題・エラーメッセージ
・画像の中のボタンを押すと、ボタン位置が上にずれてしまう。
・テキストが表示される位置が、要素外ではなく要素内(右側の画像の中)に偏ってしまう。
該当のソースコード
HTML
1<div class="box-wrap"> 2<div>テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト</div> 3<div><img src="http://placehold.jp/500x600.png"> 4<!-- クリック時のみ表示する領域 --> 5<div class="hidden_box"> 6 <input type="checkbox" id="label1" /> 7 <label for="label1"></label> 8 <div class="hidden_show"> 9<!--非表示要素ここから--> 10<p>テスト文章ですテスト文章ですテスト文章ですテスト文章ですテスト文章です</p> 11</div> 12<!--ここまで--> 13</div></div> 14<!-- / .box-wrap --></div> 15</div>
css
1.box-wrap { 2 position:relative; 3 max-width:1500px; 4 width: 100%; 5 text-align:center; 6} 7.box-wrap div { 8 display:inline-block; 9 width: 30%; 10 margin: 0; 11 padding:0; 12 text-align:left; 13} 14 15/* */ 16 17.hidden_box { 18 position:absolute; 19 right: 40px; 20 bottom: 30px; 21 cursor :pointer; 22} 23 24.hidden_box label { 25 width: 154px; 26 height: 29px; 27 background:url("http://placehold.jp/24/cc9999/993333/154x29.png") no-repeat center top; 28 display: block; 29} 30 31/*ボタンを切り替え*/ 32.hidden_box input:checked ~ label { 33 width: 154px; 34 height: 29px; 35 background:url("http://placehold.jp/24/000000/993333/154x29.png") no-repeat center top; 36 display: block; 37} 38 39/*チェックは見えなくする*/ 40.hidden_box input { 41 display: none; 42} 43 44/*中身を非表示にしておく*/ 45.hidden_box .hidden_show { 46 height: 0; 47 padding: 0; 48 overflow: hidden; 49 opacity: 0; 50 transition: 0.8s; 51} 52 53/*クリックで中身表示*/ 54.hidden_box input:checked ~ .hidden_show { 55 padding: 10px 0; 56 height: auto; 57 opacity: 1; 58}
試したこと
・<label for="label1"></label>だけを右側の要素内に入れて、それ以外の非表示領域の設定はdisplay:inline-blockの外に出す。
非表示要素はちゃんと下に表示されるようになったが、.hidden_boxから無理矢理抜き出したためか、labelの切り替え設定が反映されなくなってしまった。
補足事項
要素の表示/非表示については、以下のサイトを参考にさせていただいています。
https://saruwakakun.com/html-css/reference/hidden-show#section3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/16 05:02
2019/03/16 05:12
2019/03/16 05:22