此处标准使用浮动和已修复:
<html>
<head>
<style type="text/css">
#bigDiv
{
background-color: red;
height: 2000px;
width: 100px;
float: left;
}
#littleDiv
{
background-color: green;
height: 400px;
width: 200px;
float: left;
}
#littleDivFixed
{
background-color: blue;
height: 100px;
width: 200px;
position: fixed;
}
</style>
</head>
<body>
<div id="bigDiv">
</div>
<div id="littleDiv">
</div>
<div id="littleDivFixed">
</div>
</body>
</html>
_
_
是否可以使用混合这两种行为的div:
_
提前感谢您的帮助。
答案 0 :(得分:4)
喜欢这个?只需在left
div
top
和fixed
属性即可
好的,这适用于Chrome和IE8(确保它是标准模式,而不是怪癖),但出于某些原因不在jsFiddle中。我不确定为什么,但它会做你想要的(我想)。如果你想确保它总是10px,以防div调整大小,你可以向bigDiv添加一个onResize监听器来重新调用positFix函数。
<html>
<head>
<style>
#bigDiv {
border: 1px solid red;
height: 2000px;
width: 100px;
float: left;
}
#littleDiv {
border: 1px solid green;
height: 400px;
width: 200px;
float: left;
}
#littleDivFixed {
border: 1px solid blue;
height: 100px;
width: 200px;
top: 10px;
position: fixed;
}
</style>
<script type="text/javascript">
function $(elem) {
return document.getElementById(elem);
}
function positFix() {
$('littleDivFixed').style.left = $('bigDiv').offsetWidth + 10;
}
</script>
</head>
<body>
<div id="bigDiv">
</div>
<div id="littleDiv">
</div>
<div id="littleDivFixed">
</div>
<script type="text/javascript">
positFix();
</script>
</body>
</html>
答案 1 :(得分:4)
你能改变标记的结构吗?
通过进行两项更改,我得到了您所描述的行为(在Firefox 3.6中):
在littleDiv中嵌入littleDivFixed
所以而不是
<div id="littleDiv">
</div>
<div id="littleDivFixed">
</div>
你有
<div id="littleDiv">
<div id="littleDivFixed">
</div>
</div>
为固定div添加保证金
margin-left: 10px;
设置margin
代替left
可让您保持“自动”左侧定位,同时仍进行相对调整。
答案 2 :(得分:1)
您也可以只添加:
#littleDivFixed {
...
top: 10px;
left: 110px;
}
并设置:
body {
width: 310px;
margin: 0;
}
正确的布局。