2013-03-21 39 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