###実現したいこと
タブを押すと横にスライドするアニメーション作りました。
しかしその実装で要素に対し、position: absolute;を使ってしまったため、中の子要素がフロートしてしまい、要素の高さが 0 になってしまいます。
要素にheightで高さを指定すれば済むのですが、
そうではなくheightをフロートした子要素に合わせたいです。
html
1<div id="wrap"> 2 <div id="tab1" class="tab selected">Tab 1</div> 3 <div id="tab2" class="tab">Tab 2</div> 4 5 <div id="container"> 6 <div id="slide" class=""> 7 <div id="first" class="box">1タブ内容</div> 8 <div id="second" class="box">2タブ内容</div> 9 </div> 10 </div> 11</div>
css
1.tab { 2 height: 40px; 3 width: 100px; 4} 5 6.selected { 7 background-color: black; 8} 9 10#container { 11 position: relative; 12 overflow: hidden; 13 clear: left; 14} 15 16.box { 17 display: inline-block; 18 white-space: nowrap; 19 position: absolute; 20 width: 400px; 21 height: 200px; 22} 23 24#first { 25 top: 0px; 26 left: 0px; 27} 28 29#second { 30 top: 0px; 31 left: 400px; 32} 33 34#slide { 35 transition: transform 1s ease-in-out 0s; 36 -moz-transition: -moz-transform 1s ease-in-out 0s; 37 -webkit-transition: -webkit-transform 1s ease-in-out 0s; 38} 39.move-to-first { 40 transform: translateX(0px); 41 -moz-transform: translateX(0px); 42 -webkit-transform: translateX(0px); 43} 44.move-to-second { 45 transform: translateX(-400px); 46 -moz-transform: translateX(-400px); 47 -webkit-transform: translateX(-400px); 48}
お分かりの方、ぜひご教示宜しくお願いします。
###追記
hatena19さんにご教示頂き、非常に答えに近くことができました。ありがとうございます。
さて、子要素の高さに合わせたい理由から、.boxのheight:0;に変更しました。
すると、要素がないため、boxが消す(高さが0になった)ことができました。
そこで、タブ1boxにハコを1つ、タブ2boxにハコを2つ、子要素を加えて確かめました。
html
1<div id="first" class="box"> 2 <div class="box-red"></div> 3 </div> 4 <div id="second" class="box"> 5 <div class="box-blue"></div> 6 <div class="box-blue"></div> 7</div>
css
1.box-red{ 2 width:100px; 3 height:100px; 4 background-color:red; 5} 6.box-blue{ 7 width:100px; 8 height:100px; 9 background-color:blue; 10}
すると、高さが子要素に合わせて設定されるのですが、要素が左下詰めに配置されてしまいます。
当初存在した.boxにheight:200px;を指定すると、赤い箱はちゃんと左上に配置されました。
高さを完全に子要素に設定(子要素がない場合は高さ0)しつつ、箱を左上(通常の配置先)に置くには何が足りないでしょうか
※タブのcssを少々変えています。
※boxなどのwidth:400px; と指定された要素の全てをwidht:100%;に変えております。
回答1件
あなたの回答
tips
プレビュー