css - 复合缩放和旋转变换会扭曲内容

标签 css matrix rotation scale transformation

在 CSS3 中,我试图这样做:

<div style="position:absolute; 
            left:300px;
            top:300px;
            width:100px; 
            height:50px;
            border:1px solid black; 
            transform: scaleX(2) scaleY(1) rotate(45deg);  ">
    Lorem ipsum dolor sit amet.
</div>

现场演示:http://jsfiddle.net/m5ESH/1/

据我所知,它应该首先将栅格/矢量水平缩放到 200%,垂直缩放到 100%,然后对这个新栅格应用第二次转换,即将每个点旋转 45 度。

但是请注意 90 度 Angular (border:solid 1px black)不再是 90 度 Angular 。因此,我对转换的解释存在一些根本性缺陷。

那么,我怎样才能应用不受先前比例影响的旋转转换

最佳答案

将旋转放在缩放之前,然后它会按您想要的方式工作。 [我不知道为什么会这样,它“只是有效”]

transform: rotate(45deg) scaleX(2) scaleY(1) ;

更新:通过将它们的基础变换矩阵相乘来应用多个变换。这意味着转换以相反的顺序应用。因此,无论您希望应用转换的顺序如何,都以相反的顺序列出它们,它们应该可以工作。

关于css - 复合缩放和旋转变换会扭曲内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8881701/

相关文章:

java - 我应该使用什么查询来使用 Jsoup 从 html 页面中提取符号?

C++ 程序在旋转字符串超过其长度时崩溃

c++ - 带有 GLSL 的 OpenGL 中的简单二维矩阵旋转不产生任何输出

ios - IOS View 旋转动画

matlab - 如何突出显示或识别矩阵中具有特定值的列?

javascript - 删除div动画

css - 是背景图像被覆盖还是缺少 css 文件的原因?

jquery - 爆炸效果jquery不工作

c++ - OpenCV:如何有效地将 Mat2d 矩阵的每个元素乘以 Mat1d 矩阵

algorithm - 最小列总和差异是多少?