「CSS」transform使fixed布局失效问题

项目当中,遇到需要加一个吸顶效果组件。原思路,使用Vant组件库中Sticky 粘性布局组件。后发现无法实现吸顶效果。排查后发现原因为:父元素的transform使子元素fixed布局失效,子元素从原本的fixed布局,变为绝对定位布局absolute。

总结:做粘性布局或者吸顶效果时,应避免父元素使用transform。

演示代码 吸顶效果

<div id="app">
	<div class="box"></div>
	<div class="test">
		<van-sticky>
			<van-button type="warning">吸顶效果</van-button>
		</van-sticky>
	</div>
</div>
<style>
html,
body,
#app {
  width: 100%;
}

.box {
  width: 250px;
  height: 250px;
  background-color: pink;
}

.test {
  width: 250px;
  height: 1800px;
  background-color: red;
}
</style>

添加Transform导致吸顶效果失效

<div id="app">
	<div class="box"></div>
	<div class="test">
		<van-sticky>
			<van-button type="warning">吸顶效果</van-button>
		</van-sticky>
	</div>
</div>

<style>
html,
body,
#app {
  width: 100%;
  /* 父元素添加transform */
  transform: scale(0.8) 
}

.box {
  width: 250px;
  height: 250px;
  background-color: pink;
}

.test {
  width: 250px;
  height: 1800px;
  background-color: red;
}
</style>
posted @ 2022-07-28 10:35  耶温  阅读(363)  评论(0编辑  收藏  举报