好的,任何已經使用css和html足夠長時間的人可能已經處理了「身高:100%」這些荒謬問題。我已經閱讀了一些處理它的東西,但沒有多大幫助。以下是我需要構建的佈局。我希望很好的答案能幫助我解決大多數其他需要身高的結構。
規則:解決CSS高度問題
- 必須填寫的瀏覽器窗口,而不給予任何滾動。
- 容器的高度不得超出可見區域(即不需要「溢出:隱藏」在html或body標籤只是刪除滾動條)
- 柔性區域應調整到給定像素測量,而FILLER應該填充任何可用的區域。
- 所有區域的尺寸應嚴格控制在溢出時應切斷其內容,而不要使區域變大。
- 如果可能,我會寧願沒有「位置:固定」或「位置:絕對」,如果任何時候以後我需要這樣的結構內部其他包裝,但現在我會很高興能夠以任何方式。
- 最後,我真的不想使用它的JavaScript。
+-------------------------------------------+ | FLEX /\ | | \/ | +-----------------------------------+-------+ | | | | | | | | | | | | | /\ | | | <FILLER> | FLEX | | \/ | <- -> | | | | | | | | | | | | | +-----------------------------------+-------+
編輯:
到目前爲止,我發現我能達到什麼樣的@cimmanon說的話在他的第二個例子,再加上消除了對頭部的側多餘的空間。我通過創建兩個表(一個用於包裝標題和另一個包裝內容和邊欄的表)來做到這一點,這是一種不好的做法。但是,如果它是唯一的方法來做到這一點(當試圖堅持經典的CSS,並避免使用像flexbox黑客),然後我堅持它。
我還有一個問題,這也是在@ cimmanon的第二個例子中發現:我的一個規則的狀態:所有區域應嚴格尺寸使得它們的含量應溢出時被切斷,沒有使該地區更大。。在爲每個容器添加了一堆隨機框之後,我發現它們將底部的兩個容器推出了瀏覽器的底部,創建了一個滾動條。這是因爲討厭的概念,高度:100%意味着瀏覽器的視口高度,或者內容的高度,如果它更高 - 在這種情況下是這樣。
有沒有辦法解決這個問題?
對不起,我不知道如果我做了明確:FLEX地區應該有一個給定的像素大小 - 百分比將讓他們舒展。 – Codesmith
所以你只想讓你的填充物響應,而不是flex? – 2013-05-19 13:04:28
是的。正確 - 只有填充符會改變窗口大小的寬度和高度。 – Codesmith