我想达到下面所述的效果
页面分两大块儿,①所指的
div
宽度固定,高度不固定,居中②所指的
div
要紧贴着①;并且不随着页面的滚动而滚动【或者说②处于浏览器窗口固定的位置】;
我所不能解决的问题
如果对②使用
position:fixed
,那么当浏览器窗口不固定的时候,如何才能让它紧贴着①;
或者说②的left
或right
属性怎么取值?有想过浏览器窗口宽度发生变化时,用js去调整②的
left
或right
取值。。。
大家有什么技巧来实现这种效果吗
我想达到下面所述的效果
页面分两大块儿,①所指的div
宽度固定,高度不固定,居中
②所指的div
要紧贴着①;并且不随着页面的滚动而滚动【或者说②处于浏览器窗口固定的位置】;
我所不能解决的问题
如果对②使用position:fixed
,那么当浏览器窗口不固定的时候,如何才能让它紧贴着①;
或者说②的left
或right
属性怎么取值?
有想过浏览器窗口宽度发生变化时,用js去调整②的left
或right
取值。。。
大家有什么技巧来实现这种效果吗
我觉得应该只能用js去解决了
jquery的代码如下
//监视窗口大小变动事件
$(window).resize(function (){
var ①=$("①")
var ①offset=①.offset();
//用元素距离左面的像素+元素本身的宽度
var ②left=①offset.left+①.outerWidth()
$("②").css('left',②left)
})
//在页面加载完毕之后手动执行一下reszie事件
$(window).trigger('resize')
(楼上正解)如果不考虑兼容性,还可以这样:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<div class="main"></div>
<div class="aside"></div>
</body>
</html>
$mainWidth: 240px;
$asideWidth: 100px;
html,body {
margin: 0;
box-sizing: border-box;
}
.main {
margin: 20px auto;
width: $mainWidth;
height: 4000px;
border: 1px solid #333;
}
.aside {
position: fixed;
top: 200px;
right: 0;
left: 0;
margin: auto;
width: $asideWidth;
height: 100px;
border: 1px solid #333;
transform: translateX(($mainWidth+$asideWidth)*.5+10px);
}
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
5 回答2k 阅读
不知道你要是不是这样,如果你的整体宽度大于1366的话,可能你就要缩小中心的那个板块宽度,那么久需要用一点JS (还有就是fixed 兼容到IE7, 如果你要兼容到IE6就需要用js编辑右边的板块在保持在在右边了)