博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
让一个元素相对于父元素固定定位
阅读量:5078 次
发布时间:2019-06-12

本文共 1002 字,大约阅读时间需要 3 分钟。

之前在项目中,遇到了一个场景,需要实现相对于父元素的fixed定位:在父元素内拖动滚动条时,"fixed"定位的元素不能滑动,在外层拖动滚动条时,父元素及父元素内的所有元素跟着一起滑动。但是position: fixed是相对于窗口进行的定位,不能直接实现我们需要的效果。

 

我们想让特定子元素相对于父元素"fixed"定位,也就是说,剩余的子元素不定位。那我们可以分开来想,如果添加一个祖先元素assistor,有两个祖先元素,一个用于辅助定位,一个用于包裹不定位的内容,这个问题不就解决了吗。像这样

 

实质上是child相对于assistorabsolute定位,parent内的内容自己负责展示。只要assistor和parent一样大,看起来就像是子元素child相对于父元素parent固定定位了。具体原理是position: absolute;的元素会相对于第一个设置了position: relative;的祖先元素进行定位,我们将assistor设置为position: reletive;,滚动条是在parent中的,这样"fixed"定位和parent内的内容滚动就都实现了。

 

  

 

.assistor {  position: relative; /*关键点*/  display: block;  width: 500px;  height: 300px;  margin: 100px auto 0 auto;  background-color: #ddd;}.parent {  width: 500px;  height: 300px;  background-color: #888;  overflow: auto; /*关键点*/}.child {  position: absolute; /*关键点*/  width: 120px;  height: 120px;  margin: 100px 50px;  background-color: #333;}.placeholder {  width: 1000px;  height: 1000px;}

  

转载于:https://www.cnblogs.com/qqfontofweb/p/7813718.html

你可能感兴趣的文章
IO模型介绍
查看>>
Vue 路由设置router
查看>>
pandas to_excel 添加颜色
查看>>
[转]WinForm中可折叠的DataGridView
查看>>
安装了iis之后,打开默认网站http://localhost/要求输入用户名和密码解决办法
查看>>
LR连接oracle时出现:SQLState=28000[Oracle][ODBC][Ora]ORA-01017:invalid username/password;logon denied...
查看>>
最全的MySQL查询语句整理(高级查询、联合查询、连接查询、子查询)
查看>>
SQL Server数据库文件存储目录转移
查看>>
flex security
查看>>
浏览器及HTML解析、jQuery入门及简介
查看>>
安卓软键盘的搜索
查看>>
nginx 进程通信--共享内存
查看>>
Atitit.数据检索与网络爬虫与数据采集的原理概论
查看>>
定义默认字典值为列表类型
查看>>
从MySQL中导入数据到MongoDB中
查看>>
android 栈方式退出
查看>>
理解MapReduce
查看>>
圣杯布局与双飞翼布局
查看>>
路飞学城-Python开发集训-第1章
查看>>
第6章 利用数组处理批量数据
查看>>