position:absoluteで浮いている要素を上下中央配置にするやり方。
昔は大変だったが、今ではflexboxを使えば簡単にできる。キーは子要素にdisplay:flexをかけて、縦方向に中心いするためにflex-direction:column、align-items: center;にし、さらにwidthとheightに100%をかける。
.parent { position: relative; } .child { position: absolute; top: 0; width: 100%; height: 100%; z-index: 2; display: flex; flex-direction: column; justify-content: center; align-items: center; }
幅と高さがない場合中央配置にならないため注意。
単純に中央配置にするだけなら、flexboxを使わなくても実現可能。leftとrightをどちらも0を指定するだけ。
.parent { position: relative; } .child { position: absolute; width: 100%; height: 100%; top: 0; left: 0; right: 0; }
こちらも幅の指定をしないと中央配置にならないため注意。