2012-10-30 127 views
0

我正在寫一個瀏覽器遊戲來改善我的web技能,但我被困在佈局問題中。我的遊戲頁面包含一個標題,內容和一個帶有兩個間隔符的頁腳,其間有一個backgroundImage。內容div應垂直拉伸,以便使用視圖的整個空間。如果內容比瀏覽器更高,則應該使用滾動條進一步拉伸。它的重要性在於高度是正確的,因爲我使用漸變填充作爲背景,並且不應該在某個點重複。我認爲我可以通過身高來實現這個目標:對於大尺寸和最小高度的內容,auto:對於小尺寸內容的100%。但這不起作用。我讀了幾個論壇帖子,但沒有任何工作。請問你能幫幫我嗎?我的推理錯誤嗎?具有最小高度的動態內容高度

HTML: (的用於特大型頁面的BR)

<html> 
<head> 
    <link rel="stylesheet" type="text/css" href="mycss.css"> 
</head> 
<body> 
    <div class="center"> 
    <div class="header"> 
     Header 
    </div> 
    <div class="spacer"></div> 
    <div class="main"> 
     Content 
     <!--<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> 
      <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>--> 
    </div> 
    <div class="spacer"></div> 
    <div class="footer"> 
     Footer 
    </div> 
    </div> 
</body> 
</html> 

CSS:

html,body { 
    margin:0px; 
    padding:0px; 
    height: auto; 
    min-height: 100%; 
} 

body { 

    background: rgb(122,188,255); /* Old browsers */ 
    background: -moz-linear-gradient(top, rgba(122,188,255,1) 0%, rgba(96,171,248,1) 44%, rgba(64,150,238,1) 100%); /* FF3.6+ */ 
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(122,188,255,1)), color-stop(44%,rgba(96,171,248,1)), color-stop(100%,rgba(64,150,238,1))); /* Chrome,Safari4+ */ 
    background: -webkit-linear-gradient(top, rgba(122,188,255,1) 0%,rgba(96,171,248,1) 44%,rgba(64,150,238,1) 100%); /* Chrome10+,Safari5.1+ */ 
    background: -o-linear-gradient(top, rgba(122,188,255,1) 0%,rgba(96,171,248,1) 44%,rgba(64,150,238,1) 100%); /* Opera 11.10+ */ 
    background: -ms-linear-gradient(top, rgba(122,188,255,1) 0%,rgba(96,171,248,1) 44%,rgba(64,150,238,1) 100%); /* IE10+ */ 
    background: linear-gradient(top, rgba(122,188,255,1) 0%,rgba(96,171,248,1) 44%,rgba(64,150,238,1) 100%); /* W3C */ 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7abcff', endColorstr='#4096ee',GradientType=0); /* IE6-9 */ 

} 

.center { 
    height: auto; 
    min-height: 100%; 

    width:1024px; 
    margin-left:auto; 
    margin-right:auto; 
    text-align:left; 

    box-shadow: 0px 0px 20px 0px #000; 

    background: rgb(181,189,200); /* Old browsers */ 
    background: -moz-linear-gradient(top, rgba(181,189,200,1) 0%, rgba(130,140,149,1) 36%, rgba(117,117,117,1) 100%); /* FF3.6+ */ 
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(181,189,200,1)), color-stop(36%,rgba(130,140,149,1)), color-stop(100%,rgba(117,117,117,1))); /* Chrome,Safari4+ */ 
    background: -webkit-linear-gradient(top, rgba(181,189,200,1) 0%,rgba(130,140,149,1) 36%,rgba(117,117,117,1) 100%); /* Chrome10+,Safari5.1+ */ 
    background: -o-linear-gradient(top, rgba(181,189,200,1) 0%,rgba(130,140,149,1) 36%,rgba(117,117,117,1) 100%); /* Opera 11.10+ */ 
    background: -ms-linear-gradient(top, rgba(181,189,200,1) 0%,rgba(130,140,149,1) 36%,rgba(117,117,117,1) 100%); /* IE10+ */ 
    background: linear-gradient(top, rgba(181,189,200,1) 0%,rgba(130,140,149,1) 36%,rgba(117,117,117,1) 100%); /* W3C */ 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b5bdc8', endColorstr='#757575',GradientType=0); /* IE6-9 */ 

} 

.spacer{ 
    min-height:16px; 
    background-image: url(Absperrband.png); 
    background-repeat: repeat; 
    -webkit-box-shadow: 0px 0px 5px 0px #000; 
      box-shadow: 0px 0px 5px 0px #000; 
} 

.header { 
    padding : 8px; 
    height:70px; 
} 

.main{ 
    min-height: 100%; 
    padding : 12px; 
} 

.footer{ 
    padding : 12px; 
} 

回答

1

聽起來你正在尋找一個「粘頁腳」的效果。

http://www.cssstickyfooter.com/

+0

該解決方案與第三個答案的身體漸變具有相同的問題。它沒有延伸,但重複。 – Gnietschow

+0

不與CSS調整... http://jsfiddle.net/zsmvq/你只需要玩CSS的最後'spacer'和'頁腳' – Dawson

+0

灰色漸變都很好,但藍色重複背景的梯度。如果您調整jsfiddle中resultwindow的寬度,您可以看到它。這個高度的結果是:身體的100%。我怎樣才能避免這種情況? – Gnietschow

0

HTML,身體應該height:100%和你的主要股利(.center)應具備的min-height:100%; height:auto

DEMO

+0

這解決了只有少數內容的情況下。但是對於許多人來說,身體的漸變並不是在整個場地上展開,而是在視圖高度後重復。 – Gnietschow

0

添加display:inline-block;body.center 和看到的結果

+0

我試過了,但只有居中被破壞。我的元素的高度不受影響。 – Gnietschow

0

添加display:inline-block;text-align:center;bodydisplay:inline-block;text-align:left;.center

希望它可以解決我的回答

+0

不幸的是,正如你可以在這個http://jsfiddle.net/PtLYs/看到的,你的解決方案的高度沒有變化。看來改變顯示屬性並不是正確的方法。 – Gnietschow

相關問題