在页面中央对齐加载动画gif

3
我正在尝试制作一个加载动画,使其在页面中心和移动设备上都能显示。我已经尝试过:
margin: 0 auto;

但是我没有运气。
#bw-preloader, #bw-preloader:after {

    background:url(http://i.imgur.com/ImksiyD.gif) !important;
    background-repeat: no-repeat !important;
    border-radius: 0% !important;
    width: 256px !important;
    height: 256px !important;
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    margin: -50px 0px 0px -50px; !important;
}

#bw-preloader {
border: 0px !important;
-webkit-transition: opacity 10s !important;

position: fixed !important;
top: 50% !important;
left: 50% !important;
margin: -50px 0px 0px -50px; !important;
}

@media only screen and (max-width: 500px) {
#bw-preloader {

position: fixed !important;
top: 50% !important;
left: 50% !important;
margin: -50px 0px 0px -50px; !important;
}
}

您可以在这里实时查看。

如果我漏掉了什么,有人可以检查一下吗?

也尝试过

position: absolute;
3个回答

1
这个例子的代码可能会有所帮助。

HTML

<div class="image-container">
<p class="image-holder">
<img src="loading.gif" />
</p>
</div>

CSS (层叠样式表)
div.image-container {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 100%;
    bottom: 0;
    background-color: #fff; 
    z-index: 999999;
    text-align: center;
}

.image-holder {
    position:absolute;
    left: 50%; 
    top: 50%;
    width: 30px;
    height: 30px;
}

.image-holder img 
{
    width: 100%;
    margin-left: -50%;
    margin-top: -50%;   
}

JS

$('div.image-container').delay(350).fadeOut('slow');

你忘记给 .image-holder div 设置负外边距了,现有的代码会将 div 的左上角与中心对齐。 - flynorc
@flynorc 谢谢!问题已解决。 - Heroselohim

0

请尝试以下操作:

position:absolute;
width:256px;
height:256px;
top:50%;
left:50%;
margin: -128px 0 0 -128px;
z-index:1000;

使用 position 属性和 top:50% 和 left:50% 将元素移动到中间的左上部分,因此您需要给它一个对象宽度/高度一半的负边距。

希望这有所帮助。

0

您需要按照以下方式调整您的CSS:

#bw-preloader, #bw-preloader:after {
    background: url(http://i.imgur.com/ImksiyD.gif) !important;
    background-repeat: no-repeat !important;
    border-radius: 0% !important;
    width: 256px !important;
    height: 256px !important;
    margin: -128px 0 0 -128px;
}

你需要将顶部和右侧边距分别调整为高度和宽度的一半。


移动版本怎么办?你的代码在大屏幕上运行得非常完美!你能帮我处理一下移动端吗? - user4544229
@SteliosM。如果是移动版本,想法应该是类似的,确保在任何地方看到#bw-preloadermargin值相同即可。 - Marc Audet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接