2013-08-31 72 views

回答

1

嘗試在你的盒子其放置好。

當你創建一個固定的元素,它需要一個確切位置:

例子:

#header{ 
    height: 95px; 
    width: 640px; 
    position: fixed; 
    top: 30px; 
    right: 30px; 
} 

所以,這是你的瀏覽器將如何閱讀:我將會把固定元件在屏幕的右上角:距離頂部30像素,屏幕右側30像素。

原因那些固定的元素是一個在另一個上面,那是因爲他沒有正確定義頂部/底部左/右位置。添加更多文本,你會看到如果你可以滾動固定元素(你不能..)。

將所有內容放入div和ID'it#bigbody。給#bigBody一個精確的寬度和高度,假設1000寬度和600高度。 現在添加這些:

#header { 
    height: 50px; 
    width: 600px; 
    position: fixed; 
    top: 30px; 
    right: 30px; 
} 

#footer { 
    background: #fff; 
    bottom: 0; 
    right: 0; 
    height: 30px; 
    width: 600px; 
    position: fixed; 
} 

最小寬度在這裏無關緊要......你使用這個只有當你設計的大網站,需要多臺設備訪問如iPhone,平板電腦等等......如果你只用打碼只是堅持基礎知識。

+0

只有第一個元素是固定的第二個不是 – xuma202

+1

這是一樣的東西...... 爲固定元素定義一個確切的位置。像它應該放在哪裏TOP或BOTTOM,現在從哪裏來?右或左? #header { height:50px; width:600px; 職位:固定; top:30px; right:30px; } 另一個元素需要'position:absolute'屬性。此屬性需要成爲'position:relative'屬性的子項才能工作。 –

+0

好吧,我有'位置:固定; top:0px; 寬度:100%; left:0px;'在我的標題和'position:abolute'上我的主要內容 仍然是我主要內容的一部分被標題重疊。我也在內容相同的結果上嘗試過'position:relative'。 – xuma202

1

你可以通過JavaScript來做到這一點,更新標題的大小和其他小部件的邊距。有關示例(使用CoffeeScript,在Firefox和Chrome上測試)或使用jQuery的this other fiddle,請參閱my fiddle。基本上它將CSS變爲一個以上的元素。

header { height: value + "px"; } 
.contents { margin-top: anotherValue + "px"; } 

如果大小變化不是由JavaScript/CoffeeScript的做,你就必須把事件監聽器來更新.contents CSS。

+0

好吧,我已經這麼做了 '$(「#mainContent」).css(「margin-top」,$(「#navbar」)。height()+ 30);' 但是後備會很好 – xuma202

+0

As據我所知,沒有'margin-top'和'height'的後備。如果你的意思是一個優雅的退化,以至於jQuery版本不夠用,我會建議你刪除'display:fixed;'來降低這種退化。只有在IE中,你可以使用'onresize'事件來處理元素(除了窗口對象),所以你應該選擇爲更新函數添加一個觸發器來更新每個可能影響標題高度的變化,或者使用'setTimeout '定期檢查/更新那個高度。我強烈建議你避免一個計時器。 –

+0

除非窗口確實,否則標題不會調整大小。這個問題雖然解決了,但。我想到了一個非javasctript後備 – xuma202