2016-01-12 54 views
1

如果我有以下HTML:保證金子元素不會強迫窗口顯示滾動條時,HTML元素具有高度:100%

<!doctype html> 
<html> 

<head> 
    <style> 
    html { 
     height: 100%; 
    } 

    .square { 
     background-color: red; 
     width: 100px; 
     height: 100px; 
     margin-bottom: 2000px; 
    } 
    </style> 
</head> 

<body> 
    <div class="square"></div> 
</body> 

</html> 

我預料的div的保證金會導致窗口成爲可滾動的。這在Chrome中按預期工作,但在Safari中,該窗口不可滾動。爲什麼是這樣?這是一個錯誤?

html高度100%是故意的。

+0

也許如果你玩'溢出'CSS屬性? http://www.w3schools.com/cssref/pr_pos_overflow.asp – jonathanGB

+0

'html {height:100%}'可能是導致此問題的原因。有沒有什麼理由使用它? –

+0

@Lucas是的,這是造成這個問題,但它是必要的我的佈局。 –

回答

0

很明顯,如果在該元素下面沒有任何內容,Safari會忽略margin-bottom。

我試圖把一個額外的元件下面.square DIV是(在此特定情況下,也通過color: #fff;)不可見由height: 0px;。你看不到的元素,但現在看來滾動條,填充不再被忽略:

http://codepen.io/anon/pen/eJRexY

我又試圖只用那隻「看不見的」元素裏只有一個空間,但沒」 t以同樣的方式工作 - 有是一些「真正的內容」。但是,&nbsp;僅作爲該元素的內容工作。

事實上,你甚至不需要另一個DIV,只需在.square div之後添加&nbsp;也可以使滾動條出現在Safari中。

相關問題