前言
之前遇到过fixed
布局嵌套的一些场景,fixed
布局是针对body
定位的,但是在某些特殊情况下,子级的fixed
会受到父级fixed
的影响,除了需要z-index
来区分层级,还要注意transform
的使用(貌似好多地方transform
都会引发问题)
fixed的使用
一般的场景是一个遮罩加一个弹框
<div class="modal">
<div class="content">
<div class="children"></div>
</div>
</div>
.modal {
position: fixed;
left: 0;
top: 0;
right: 0;
bottom: 0;
height: 100%;
width: 100%;
z-index: 999;
background: rgba(0, 0, 0, .5)
}
.modal .content {
width: 300px;
height: 200px;
background: #fff;
position: absolute;
left: 50%;
top: 50%;
transform: translate3d(-50%, -50%, 0)
}
效果是这样的
这个时候在内部的children
再使用fixed
布局时,就会被父级的fixed
元素限制住
.modal .content .children {
position: fixed;
left: 0;
top: 0;
right: 0;
bottom: 0;
width: 100%;
height: 100%;
background: #123456
}
解决方法
1、父级不使用tansform
2、不进行嵌套