你能让transform: scale() 考虑到边距吗?

前端开发 2026-07-08

如果你缩放一个带有外边距的元素,它在页面上的位置仍然保持不变,尽管查看元素时会看到外边距变小,元素并没有向左移动。

有没有一种CSS的方法,在缩放元素时同时考虑外边距?(不缩放父元素)

* {
  margin: 0;
}

div {
  width: 50px;
  height: 50px;
  background-color: red;
  margin-left: 50px;
  margin-bottom: 20px;
}

.scaleDiv {
  transform: scale(.2);
  transform-origin: top left;
}
<div></div>
<div class='scaleDiv'></div>

解决方案

改用zoom来试试

* {
  margin: 0;
}

div {
  width: 50px;
  height: 50px;
  background-color: red;
  margin-left: 50px;
  margin-bottom: 20px;
}

.scaleDiv {
  zoom: .2;
}
<div></div>
<div class='scaleDiv'></div>
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章