2014-04-20 74 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您的*新問題*通常是一種讚賞的行爲,因此用戶將能夠滾動內容。還介意分享你做到這一點的方式? –