2014-04-20 45 views
0

我想创建的是一个整页网站(无滚动条),其中包含垂直和水平居中的文本/图像/ div的块。我研究并使用了一种技术,使用0px宽度的100%高度div,然后使用内容div来垂直居中内容。完美的作品在Safari中,不是在所有的Firefox(在这两个浏览器水平的作品。)用于此下面的代码块...'display:inline block'trick不能在firefox中工作

HTML的

body 

<div class="block"> 
    <div class="centered"> 
    ... content and images 
    </div> 
</div> 

CSS-

html, body {height: 100%;} 

.block { 
background: url(images/bgimage.jpg) no-repeat center center fixed; 
-webkit-background-size: cover; 
-moz-background-size: cover; 
-o-background-size: cover; 
background-size: cover; 
min-height: 100%; 
margin: 0px; 
} 

.block:before { 
content: ''; 
display: inline-block; 
height: 100%; 
vertical-align: middle; 
padding: 0px; 
margin: 0px; 
} 

.centered { 
display: inline-block; 
vertical-align: middle; 
padding:0px; 
margin: 0px; 
text-align: center; 
*display:inline; 
} 

是否有一些等同于“display:inline-block”我可以用于Firefox?我不能使用'float:left',因为它不会垂直居中内容div,并将内联块语句拧紧。

所有帮助欢迎

  • 干杯
+1

介意提供一个fiddlejs? – Killrawr

+0

您的代码不会以Firefox,Chrome或Safari为中心。 [演示](http://jsfiddle.net/eQDt8/) – Oriol

+0

我试图做一个小提琴,但不能正确地重新创建问题 – user3550879

回答

2

只需添加下面与行内样式元素上的CSS规则,它应该修复它:

display: -moz-inline-stack; 
+0

试过了,显然人们说只能用于firefox 2,不能用于任何新版本。 – user3550879

+0

用“BrowserStack”测试它,并在不同的FireFox浏览器上看到结果。如果没有最后一个将是-moz-inline-box或-moz-inline-block,其中一个应该有所帮助。 – negative0

+0

仍然是相同的概率。一切都被推到了'.block:before'div之下。 safari漂浮在中心和旁边的div。 Firefox将其放在下面。 – user3550879

0

这是一个工作代码它在兼容的浏览器中垂直和水平居中:

基于Centering in the unknownDemo

html, body { 
    height: 100%; 
    margin: 0; 
} 
.block { 
    height: 100%; 
    text-align: center; 
} 
.block:after, .centered { 
    display: inline-block; 
    vertical-align: middle; 
} 
.block:after { 
    content: ''; 
    height: 100%; 
} 

+0

美丽,固定我的概率,但增加了一个新的,当窗口缩小到一定大小的内容发射到顶部。在safari – user3550879

+0

Nvm。我想出了一个解决方案。我感谢所有的帮助。为我节省了许多小时的睡眠时间。干杯! – user3550879

+0

@ user3550879您的*新问题*通常是一种赞赏的行为,因此用户将能够滚动内容。还介意分享你做到这一点的方式? –