Css 绝对定位,溢出滚动,动态元素
我正在用CSS创建一个复杂的布局,必须具备以下功能:Css 绝对定位,溢出滚动,动态元素,css,Css,我正在用CSS创建一个复杂的布局,必须具备以下功能: __________________________________________ | | | | | filters | | |___________________________________| | | | |
__________________________________________
| | |
| | filters |
| |___________________________________|
| | |
| | Toolbar |
| |___________________________________|
| nav | |
| | |
| | |
| | Content (scroll) |
| | |
| | |
|_____|___________________________________|
导航是静态的,所以总是显示。内容区域本身是可滚动的。工具栏也总是在那里。然而,过滤器部分应该是动态的,如果它丢失了,那么工具栏/内容应该向上移动,并占用过滤器曾经占用的空间
内容区域为位置:绝对;带有overflow:auto,看起来很像谷歌阅读器。问题是我需要做正确的事情:0;排名:0;左:0;和底部:0以使滚动正常工作
你知道我如何实现一个滚动的内容区域,它不会显示在工具栏/过滤器的顶部吗?如果删除了过滤器部分,那么所有内容都会自动向上移动,而无需指定额外的CSS来进行补偿
干杯
编辑:好的,为了让它更简单,有人能告诉我如何使用CSS实现Google Reader的布局,如果你在工具栏上引入新工具,导致工具栏高度调整,内容区域会自动向下移动吗?这样的东西适合你的需要吗
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
<style type="text/css">
body {
margin: 0;
padding: 0;
}
#nav {
position: fixed;
float: left;
width: 25%;
background-color: #F00;
}
#filters {
float: right;
width: 75%;
background-color: #FF0;
}
#toolbar {
float: right;
width: 75%;
height: 70px;
background-color: #00F;
}
#content {
float: right;
width: 75%;
background-color: #0FF;
overflow-y: scroll;
min-height: 400px;
}
</style>
</head>
<body>
<div id="nav">this is the nav</div>
<div id="filters">filters</div>
<div id="toolbar">topbar</div>
<div id="content">content</div>
</body>
</html>
无标题文件
身体{
保证金:0;
填充:0;
}
#导航{
位置:固定;
浮动:左;
宽度:25%;
背景色:#F00;
}
#过滤器{
浮动:对;
宽度:75%;
背景色:#FF0;
}
#工具栏{
浮动:对;
宽度:75%;
高度:70像素;
背景色:#00F;
}
#内容{
浮动:对;
宽度:75%;
背景色:#0FF;
溢出y:滚动;
最小高度:400px;
}
这是导航
过滤器
顶栏
内容
基本上是两列布局。如果您让内容的大小填充剩余区域,而不是完全定位它,则应该消除该问题。整个页面上唯一可滚动的区域是内容区域,但它应该是溢出的:auto;。导航部分也是溢出:自动,因为它应该能够垂直滚动。您必须绝对定位它才能执行溢出:自动,否则它无法滚动:/虽然我还没有尝试过,但我不明白,如果工具栏和过滤器部分的高度固定,为什么内容区域的高度为80%?当然,当工具栏/过滤器不在时,它应该是100%的高度来填补空白?这很接近,但内容区域需要始终填满整个空间。@Kezzer,啊!但是,您必须将Java脚本插入其中,或者坚持使用表。你可以得到100%的高度与DIV的。在另外80%的事情上,你的正确。。。我大惊小怪,忘了删除这些值。