2013-10-15 81 views
4

HTML填充百分比如何工作?

<div class='wrapper'> 
    <div class='elementContainer'> 
     This line should start halfway down the yellow box 
    </div> 
</div> 

CSS

.wrapper 
{ 
    position: relative; 

    height: 300px; 
    width: 400px; 

    background: lightyellow; 
    border: 1px solid black; 
} 

.elementContainer 
{ 
    position: relative; 
    height: 200px; 
    width: 300px; 

    padding-top: 50%; 

    background: red; 
} 

小提琴例如:http://jsfiddle.net/jakelauer/s2ZXV/

在上面的例子,.elementContainer具有50%填充頂部。這應該根據父元素的高度(.wrapper)計算,這意味着它應該出現在150px。相反,它出現在200px。這是怎麼回事?

+0

顯然它被計算爲'.elementContainer ''padding-top:50%' –

+0

......是的,這就是我寫的。 – Jake

+0

我想你可能會誤解文檔。該文檔指出,百分比是基於「包含塊」,而不是包含塊的父級。 –

回答

6

The specifications解釋了原因。

<percentage>
百分比相對於計算所生成的框的包含塊的寬度

400 50%200

+4

這個解釋非常糟糕,令人失望,這是正確的。我被迫接受它。 – Jake