react.js - 一个关于css的定位问题
本文介绍了react.js - 一个关于css的定位问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
最近在用react实践一个类似模态框的组件,要求在中间弹出一个窗口,实际上这个react bootstrap组件库中也有相关实现,但是提到:
这个modal要直接渲染到body下面,否则可能出现定位不准确的问题。
看上去蛮有道理的样子,react bootstrap实现的过程还费了一番周折,用到了unstable_renderSubtreeIntoContainer
这个方法。
但是我始终想不明白什么时候会出现定位不对的问题,因为如果用了fixed,那不就是相对于浏览器视窗进行定位了么,跟挂在哪一个节点下有什么关系??
我大概抽象出来了自己实现的css逻辑:
<!DOCTYPE html>
<html lang="en">
<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 class="modalOuter">
<div class="modal">
<p>this is a modal</p>
</div>
</div>
</body>
</html>
感觉这个class="modal"
的div放在哪都可以,并没有什么所谓的定位不对的问题。
所以想请高手问问:定位不对的问题到底在什么情况下可以浮现?
——————
顺便如果有热心人士想请问: 自己由于在准备前端暑期实习的申请,一直在研究js而忽视css,看了看html5与css3权威指南-陆凌牛还有精通css高级web标准解决方案绿皮书,但是感觉讲的内容浅又少,想问问有什么书是深入讲解css的?毕竟笔试面试都是考一些刁钻的内容。谢谢
解决方案
因为fixed
元素并不总是相对于视窗进行定位的,父元素发生变换,也就是transfrom
属性发生改变,如平移或旋转,会对固定定位的子元素产生影响。
固定定位不固定
这篇关于react.js - 一个关于css的定位问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文