【发布时间】:2011-08-05 21:13:22
【问题描述】:
我想为 sass 创建一个 mixin,它将对指定元素应用旋转。 mixin 应该采用一个参数,用于应用的旋转度数。
从 css3please.com,我找到了一种使用 CSS 实现此功能的跨浏览器方法:
.box_rotate {
-moz-transform: rotate(7.5deg); /* FF3.5+ */
-o-transform: rotate(7.5deg); /* Opera 10.5 */
-webkit-transform: rotate(7.5deg); /* Saf3.1+, Chrome */
-ms-transform: rotate(7.5deg); /* IE9 */
transform: rotate(7.5deg);
filter: progid:DXImageTransform.Microsoft.Matrix(/* IE6–IE9 */
M11=0.9914448613738104, M12=-0.13052619222005157,M21=0.13052619222005157, M22=0.9914448613738104, sizingMethod='auto expand');
zoom: 1;
}
除了讨厌的 IE 矩阵表示法之外,这一切都非常容易制作 mixin。有人对使用 sass、javascript 或两者的组合将度数转换为 IE 矩阵转换的方法有任何建议吗?
【问题讨论】:
-
如果有人感兴趣,我写了 mixin,它托管在这里:github.com/adambom/CSS3-Please-for-SASS
-
我所知道的使用 IE 的过滤器/矩阵变换的最大问题是,当一个盒子被旋转时,它不会围绕盒子的中心旋转。想象旋转盒子,绘制一个包含旋转盒子的最小矩形,然后将该容器放置在盒子原来的位置。这产生了这些解决方案(截至 2012 年 10 月 31 日)都没有考虑的偏移量。如果该语句没有意义,请这样想:如果您仅使用 IE 中的矩阵在 html 正文的开头旋转了一个框,则旋转后的框将完全可见。在其他浏览器中,它会被剪裁。
标签: javascript css sass