2014-10-29 83 views
0

我正在使用位置:固定;使div適應不同的屏幕尺寸。在這個簡化的例子中,高度被設置爲100%,以使div「example」總是佔據屏幕的整個高度。我想要做的是在這個div上騰出空間,我這樣做是通過使用position: fixed;top: 100px; bottom: 100px;使用固定位置的100%身高

問題是代碼只運行top: 100px;不是兩個。有沒有解決這個問題的方法?

Fiddle

HTML

<div id="example"></div> 

的CSS

#example { 
    background-color: #333; 
    width: 500px; 
    height: 100%; 
    position: fixed; 
    bottom: 100px; /* This is clearly not working, how do I do this with absolute/fixed position? */ 
    top: 100px; 
} 

編輯

如果我設定的高度使用CSS設置高度爲100%的這一功能istead 。那我該怎麼辦?

​​
+0

在問題中包含您的代碼。 – Daedalus 2014-10-29 23:34:51

+0

有一個小提琴在那裏與我的代碼 – Akerman 2014-10-29 23:35:45

+0

當鏈接死亡會發生什麼?對於未來的讀者來說,這個問題對於同樣的問題是沒有用的代碼在問題中。 – Daedalus 2014-10-29 23:36:08

回答

4

你要刪除的高度:100%。瀏覽器將計算頂部和底部值之間的距離並創建所需的高度。

新代碼:

#example { 
    background-color: #333; 
    width: 500px; 
    position: fixed; 
    bottom: 100px; /* This is clearly not working, how do I do this with absolute/fixed position? */ 
    top: 100px; 
} 

JSFiddle

+0

謝謝!我編輯了我的問題,你知道如何解決嗎?:) – Akerman 2014-10-29 23:51:25

+0

正如我所說的瀏覽器計算高度值,高度將是窗口的高度 - 頂點 - 底部值,所以在這裏絕對不需要使用javascript,你不能同時在同一個元素上有兩個不同的高度。你想不要告訴我們? – RMo 2014-10-30 00:03:13

+0

Okey,我現在明白了。謝謝你的澄清! – Akerman 2014-10-30 00:11:59

-1

編輯:我喜歡RMo的答案更多。它更簡單。這就是說,他們都工作。

爲了澄清,這聽起來像你想要div覆蓋100%的高度,減去100px在頂部和100px在底部。

這樣做的方式相對較新。您需要使用calc價值爲您height屬性:

#example { 
    background-color: #333; 
    width: 500px; 
    height: calc(100% - 200px); 
    position: fixed; 
    top: 100px; 
} 

它在現代瀏覽器廣泛支持:http://caniuse.com/#feat=calc

+0

哎喲,downvotes爲工作解決方案? – 2014-10-29 23:46:53

+0

:(:(感謝您的幫助!看起來像這個解決方案也在這種情況下。 – Akerman 2014-10-29 23:55:20

0

你似乎誤解盒模型。當你說「高度:100%」時,這意味着元素的高度將與包含佈局的元素具有相同的像素數量。設置頂部:100px將導致框向下移動100px,但不會影響框的高度。因此,100px的框會溢出視口。如果你指定bottom:100px,這是相同的,除了盒子的頂部100px將會使視口下溢。

刪除高度100%,頂部和底部指令將計算元素高度。

#example { 
    background-color: #333; 
    width: 500px; 
    position: fixed; 
    bottom: 100px; /* This is clearly not working, how do I do this with absolute/fixed position? */ 
    top: 100px; 
} 
+0

@RMo有答案。 – thesmart 2014-10-29 23:49:14

+0

感謝您的解釋!我編輯了我的問題,你知道如何解決這個問題嗎?問題? – Akerman 2014-10-29 23:56:40