私には、transform:translate
プロパティを使用することをお勧めします。
.object {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
もうwidth/2
とheight/2
マージンを計算taの必要はありません。
そして、あなたはSASS
を使用している場合は、ここで使用する魔法@mixinです:次に
@mixin transform($transforms) {
-moz-transform: $transforms;
-o-transform: $transforms;
-ms-transform: $transforms;
-webkit-transform: $transforms;
transform: $transforms;
}
@mixin center($position: "both") {
position: absolute;
@if $position == "vertical" {
top: 50%;
@include transform(translateY(-50%));
}
@if $position == "horizontal" {
left: 50%;
@include transform(translateX(-50%));
}
@if $position == "both" {
top: 50%;
left: 50%;
@include transform(translate(-50%, -50%));
}
}
、margin: 0 auto
を使用しないのはなぜ単に
.object {
// both vertical and horizontal
@include center;
// only vertical
@include center(vertical);
// only horizontal
@include center(horizontal);
}
あなたはマージントップ及びマージン左に%を使用することができ、あなたはここで働いて、それを見ることができます。 https://www.w3schools.com/cssref/playit.asp?filename=playcss_margin-top&preval=10%25 –
これらの金額を計算するためにjQueryを書くことができます。 –