我用固定定位实现了这个效果,如下:
滚动时:
但是固定定位的left我用的百分比,这样就会出现一个问题,当分辨率改变的时候,百分比对应的值也会改变,那么固定定位的位置也会变化:
如果用其他定位,又不能固定住右边这块儿,所以想请教各位路过的大神有什么好的建议吗?(用纯css实现)
我用固定定位实现了这个效果,如下:
滚动时:
但是固定定位的left我用的百分比,这样就会出现一个问题,当分辨率改变的时候,百分比对应的值也会改变,那么固定定位的位置也会变化:
如果用其他定位,又不能固定住右边这块儿,所以想请教各位路过的大神有什么好的建议吗?(用纯css实现)
右边 position: fixed
。至于 left
有几种方式,要看你的内容区域宽度是怎么计算出来的,我推荐用 css 变量,简单示范一下:
:root
--container-width: Npx
.container
width var(--container-width)
padding-right 200px // 假设侧边栏 200px 宽
.main
width 100%
.sidebar
position fixed
top 0
left 50%
width 200px
margin-left calc(var(--container-width) / 2 - 200px - 1rem)
右边 position: fixed
。至于 left
有几种方式,要看你的内容区域宽度是怎么计算出来的,我推荐用 @media 查询,简单示范一下:
<div class="a">
<div class="b"></div>
<div class="c"></div>
</div>
<style>
.a { width: 1000px; margin: 0 auto; }
.b { width: 800px; height:2000px; outline:1px solid red; }
.c { width: 200px; height:500px; outline:1px solid blue; position: fixed; left:calc(100vw / 2 - 1000px / 2 + 800px); top: 0; }
@media screen and (max-width:1000px) { .c {left:800px;} }
</style>
3 回答5.2k 阅读✓ 已解决
5 回答2.1k 阅读
2 回答2k 阅读✓ 已解决
1 回答3.1k 阅读✓ 已解决
3 回答2.5k 阅读
2 回答1.1k 阅读✓ 已解决
2 回答2.2k 阅读
看了下你说用grid布局不行,我想了下还是写了个demo,自己拷贝下来执行下看看就知道了。