css - 正方形怎么变成等腰梯形?

标签 css matrix transform

我有一个 200*200 像素的 div,我想将其转换为 Isosceles Trapezoid。 , base 和 height 仍然是 200px,但是 a side 应该是 100px。

Isosceles Trapezoid
(来自 MathWorld - A Wolfram Web 资源:wolfram.com)

原来的正方形是200*200px。 h , 和 b sides 应该是 booth 200px,a边应为 100px。

我尝试结合倾斜、缩放和旋转,但我不知道如何管理它。也许我应该使用 transform: matrix(n,n,n,n,n,n)函数,但我真的不知道如何为这个元素制作转换矩阵。

最佳答案

大概是这样

div.transform {
  perspective: 400px;
  transform-origin: 100px 200px;

  width: 200px;
  height: 200px;

  display: inline-block;
  background-color: magenta;
}
div.transform img {
  transform-origin: 100px 200px 0;
  transform: rotate3d(1,0,0, 45deg) scale3d(1, 1.89, 1);
}

参见 Codepen

关于css - 正方形怎么变成等腰梯形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22934291/

相关文章:

javascript - href ="#"保留鼠标悬停属性的替代方案

c++ - 如何解决数独问题,以便通过交换任何两个相邻的子网格我仍然得到有效答案?

algorithm - 逻辑矩阵如何有效地找到具有真值的行/列

r - 缩放行值忽略列

javascript - 我怎样才能模仿这种旋转的文字效果?

CSS3 变换 - 缩放动画有时会在 Chrome 上回弹

asp.net - 帮助 CSS 定位

javascript - 如果条件为真,则将类添加到父元素

html - 为什么我的图像在使用 'margin: 0 auto' 时不居中

java - 水平或垂直翻转位图图像