對我來說,最好的選擇是使用transform:translate
屬性。
.object {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
無需再TA計算width/2
和height/2
保證金。
如果你正在使用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%));
}
}
然後,只需使用
.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來爲你計算這些金額。 –