2012-08-31 104 views
0

我想要加载动画在页面的中心。这是对<div id="loading">为什么'顶部:50%'不起作用?

#loading{ 
    position: absolute; 
    top: 50%; 
    left: 50%; 
} 

的风格,但它不是在市中心,我不知道为什么。 This是加载的jsfiddle页面。有谁能够帮助我?

+0

该div需要在一个大小的内部,所以这个胜利将有顶部:50 $ ...尝试添加另一个高度和宽度的div – jcho360

+0

您的参数是关于顶部/左上角的元件。正如其他人所说的,你需要考虑到它的大小以使其集中。 – Sparky

回答

4
#loading{ 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    margin-top: -25px; /* half of your element's height */ 
    margin-left: -25px; /* half of your element's width */ 
} 

DEMO好文章

您可能想了解更多关于vertical centering techniques(在您的情况下,它是方法2)

+1

因为你的图像是50px宽和高。所以有一半集中在50%以内 –

+0

您在DEMO中做的CSS非常棒!每个人都应该去看看:) – user1477388

1

因为你没有考虑到你的加载微调器的高度和宽度,所以它会是一点点 - 没有 - 超过50%顶部&左侧。

每个人都打我的下一个部分,但是是你总是divide/2高度&宽度的DIV /图像/等,使该顶部&左边距。

在你的情况下,图像是50像素宽&高,2,吊杆分,要使用-25px

margin-top: -25px; 
margin-left:-25px; 

这里是关于negative margin trick

2

当使用topleft,它抵消了左上角。 bottomleft偏移左下角。

基本上,你并没有告诉浏览器#中心应该居中,而是左上角应居中。


编辑:水平定心一个div的更有前途的方法是使用margin: 0 auto;。这样你就不必处理div的宽度。

我不知道任何垂直方向执行此操作的单行CSS。

相关问题