しばらく悩んだのですが、いい解決方法がないためお知恵をお貸しいただければと思い投稿させていただきます。
前提・実現したいこと
コンテンツの高さ半分だけ要素を上にずらしたいです。
(piyoにfugaが重なっているような状態です)
transform: translateY(-50%);では、ずらしたぶんだけの余白ができてしまうのを回避したいです。
要素が可変であるため、px単位での位置指定はしたくありません。
position:absolute;での指定も、高さ指定が必要になるためできません。
該当のソースコード
html
1<div class="hoge"> 2 <figure class="piyo"> 3 <img src="piyopiyo.jpg" /> 4 </figure> 5 <div class="fuga"> 6 <p>ダミーテキスト</p> 7 </div> 8</div>
css
1.fuga{ 2 transform: translateY(-50%); 3}
上記コードの問題点
実現したいこと〜にも記載しましたが、ずらしたぶんだけ余白が下にできてしまうのが問題点です。
ネガティブマージンを使うことも考えましたが、高さがどれだけになるかがわかっていないとできないため、
現実的ではありません。
jsを使ってしまえばできると思いますが、それ以外に方法がないかと思い、投稿いたしました。
なにかよいお知恵を拝借できれば幸いです。よろしくお願いいたします。