一个关于css的定位问题?
问题描述
最近在用react实践一个类似模态框的组件,要求在中间弹出一个窗口,实际上这个react bootstrap组件库中也有相关实现,但是提到:
这个modal要直接渲染到body下面,否则可能出现定位不准确的问题。
看上去蛮有道理的样子,react bootstrap实现的过程还费了一番周折,用到了unstable_renderSubtreeIntoContainer这个方法。
但是我始终想不明白什么时候会出现定位不对的问题,因为如果用了fixed,那不就是相对于浏览器视窗进行定位了么,跟挂在哪一个节点下有什么关系??
我大概抽象出来了自己实现的css逻辑:
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>Title</title> <style>.modal{ width: 200px; height:200px; position: fixed; top:calc(50% - 100px); left:calc(50% - 100px); background: grey; display: flex;}.modal p{ margin: auto;}.modalOuter{ width: 400px; height:40%; position: fixed;} </style></head><body><div> <div><p>this is a modal</p> </div></div></body></html>
感觉这个class="modal"的div放在哪都可以,并没有什么所谓的定位不对的问题。
所以想请高手问问:定位不对的问题到底在什么情况下可以浮现?
问题解答
回答1:一个关于css的定位问题?-PHP中文网问答-一个关于css的定位问题?-PHP中文网问答
围观一下哦,学习一下。
回答2:因为fixed元素并不总是相对于视窗进行定位的,父元素发生变换,也就是transfrom属性发生改变,如平移或旋转,会对固定定位的子元素产生影响。
相关文章:
1. node.js - 如何解决阿里云上nodejs不支持import,项目npm run build后报Unexpected token import2. transform - CSS3的3D变换多次变换如何保持坐标轴不动,或者有矩阵算法可以实现否3. mysql - 数据库:获取两个字段与获取*,传输的数据量差距大吗?4. composer包时报错5. 为什么谷歌访问助手安装好以后还是不是访问谷歌网上应用店?6. mysql-配置 - MySQL错误,时不时自动挂掉,无法启动7. node.js - session怎么存到cookie,然后服务器重启后还能获取。数据库不用mongodb或redis,数据库是mysql8. javascript - vue.js如何递归渲染组件.9. 这是什么情况???10. 如何用笔记本上的apache做微信开发的服务器

网公网安备