You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CSS中还原子元素的skew与rotate变换效果?

问题原因及解决办法

父元素的变换是按skewY(-45deg) → rotateX(30deg)的顺序执行的,而子元素直接用相反顺序的变换无法抵消,因为子元素的变换是在父元素变换后的局部坐标系上进行的,必须逆序应用相反变换才能恢复默认状态。

修正后的代码

#ace {
  width: 50vw;
  height: 50vw;
  background: green;
  transform: skewY(-45deg) rotateX(30deg);
}

#bace {
  width: 50%;
  height: 50%;
  background: black;
  /* 逆序抵消:先消除rotateX的影响,再消除skewY的影响 */
  transform: rotateX(-30deg) skewY(45deg);
}

简单解释

父元素的变换流程是:原始状态 → 斜切Y轴 → X轴旋转;子元素要回到原始状态,得反向走这个流程——先把X轴旋转的影响抵消掉,再抵消斜切的影响,所以变换顺序必须反过来写,才能让子元素完全恢复到未变换的默认状态。

内容的提问来源于stack exchange,提问作者Stephen Mustapha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:39:20