2013-03-21 77 views
4

我有一個父div與兩個子div(標題和正文),我想設置標題位置固定在頂部,只有身體應滾動。絕對定位的孩子重疊父滾動條

HTML

<div class="box"> 
<div class="header">Header</div> 
<div class="body">Body</div> 

CSS

.box { 
height: 300px; 
border: 1px solid #333; 
overflow: auto; 
} 
.header { 
position: absolute; 
width: 100%; 
height: 100px; 
background: #ccc; 
} 
.body { 
height: 300px; 
background: #999; 
margin-top: 101px; 
} 

我發現頭的div重疊父div的滾動條。我不能將父母div位置設置爲相對的,因爲我需要修正標頭位置。我無法將標題位置設置爲「固定」,因爲此內容可以在頁面的某個中間位置顯示。

如何避免絕對定位的孩子不重疊父母的滾動條?

查找的jsfiddle:http://jsfiddle.net/T43eV/1/

+0

爲什麼你不能有頭的位置是:固定的嗎? – 2013-03-21 21:47:28

+1

職位:固定也給位置相似的結果:絕對。 – Murali 2013-03-25 19:36:15

回答

1

這是否幫助?

.box { position:relative; } 

編輯:沒有任何需要使用absolute反正,刪除,並把overflow:auto.body

jsFiddle

.box { 
    height: 300px; 
    border: 1px solid #333; 
} 
.header { 
    width: 100%; 
    height: 100px; 
    background: #ccc; 
} 
.body { 
    height: 200px; 
    background: #999; 
    width:100%; 
    overflow: auto; 
} 

編輯:我不認爲你可以跨平臺始終做到這一點。您可以通過將.header上的right屬性設置爲在滾動條上的大小來實現,但滾動條的大小綁定到操作系統並且不是單一大小。

您可以查看iframe,因爲這將在您的頁面,滾動條和所有內容中創建頁面。

+0

我無法設置.box {position:relative; }因爲它使標題也滾動。我期待類似的結果,但標題不應滾動。 – Murali 2013-03-21 21:49:06

+0

@Murali更新 – 2013-03-21 22:00:08

+0

我想要框的滾動條,標題應始終在頂部可見,當我滾動框只有主體應滾動。 – Murali 2013-03-21 22:13:45

2

overflow屬性應在.body,不.box被設置,因爲這樣的:http://jsfiddle.net/T43eV/8/

+0

我想要滾動框和正文應滾動標題後面。 – Murali 2013-03-21 21:51:59

+0

你是什麼意思? Box包含標題,所以如果您滾動「標題後面」,則返回原始狀態。 – darma 2013-03-21 21:53:26

+0

我期待的是標題不應該重疊滾動條,就像我設置.box {position:relative; }。但我希望標題始終在頂部可見,並且在滾動框時不應滾動。 – Murali 2013-03-21 21:59:11