私はそのdivを、自分の親divの直接中心に表示するようにアニメーション化している私の "ポップアップ"です。だから私は、ホバリングの-webkit-transform: translateY(-100%)
でそれを単にアニメーション化できるように、絶対配置、負のマージン、およびleft + topを使用して配置します。 SafariとMobile Safariでうまく動作します。絶対位置とパーセンテージを使用して子divを垂直方向に中央揃えするときのバグ
ChromeまたはFirefoxでピクセルを使用する場合は、すべてのパーセンテージを使用しても親ピクセルの幅を設定してもうまく動作します。しかし、すべてのパーセンテージを使用すると、FF + Chromeは完全に二重になり、パーセンテージがわかりません。
Fiddle Example: SafariとFF/Chromeでこれを表示すると、#pixels
は#percents
と同じになり、両方でレンダリングする必要があります。これは間違ってレンダリングされているSafariですか?
<div class="container">
<div class="pretendImage"></div>
<div id="percents"></div>
</div>
と私のCSS:
#percents {
width:100%;
height:100%;
position:absolute;
top:50%;
left:50%;
margin:-50% 0 0 -50%;
}
.container {
position:relative;
width:50%;
height:auto;
}
.pretendImage {
width:200px;
height:200px;
}
まあ、私は追加のラッパーを追加することで、回避策を見つけました。私はまだこれを引き起こす原因を知りたいと思う。
My workaround: Fiddle 80%の幅と高さを使用する内側のdivの上端+余白を計算しないようにラッパーを使用します。
Alexander、div(pertents)をdiv(pretendImage)またはdiv(container)の中央にしますか? –
申し訳ありませんdiv(pretendImage)は私の例でdiv(container)を展開し、パーセントの代わりにピクセルを設定したときの効果を表示しただけです。私のコードではimg(pretendImage)は 'width:100%;高さ:auto'なので、div(コンテナ)と同じサイズになりました。これは、私が更新した回避策のようにdiv(パーセント)を中央に配置したいと思っていました。 –