笔者在开发时遇到一个坑,当父级元素有transform的元素,子级的fixed的特性将转换成absolute。如下demo:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
body {
height: 999px;
}
.wrap {
position: relative;
}
.transform {
transform: translate3d(0px, 0px, 0px);
}
.fixed {
position: fixed;
top: 0;
left: 0;
}
p {
padding-top: 100px;
}
</style>
</head>
<body>
<div class="wrap">
![](https://img.haomeiwen.com/i2849574/99117b6a396431e7?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
<p>未使用transform</p>
</div>
<div class="wrap transform">
![](https://img.haomeiwen.com/i2849574/99117b6a396431e7?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
<p>使用transform</p>
</div>
</body>
</html>
如下图,当我们滚动页面时,父元素有transform
属性的image已经跟随着一起滚动了,并且是以absolute
的特性相对于.wrap
元素定位:
如果可以,尽量不使用
fixed
,使用absolute
去进行模拟,以免掉坑!。
网友评论