CSS3转换不起作用

我试图通过旋转他们10度来改变我的菜单项。 我的CSS在Firefox中工作,但我没有在Chrome和Safari中复制效果。 我知道IE不支持这个CSS3属性,所以这不是一个问题。

我使用下面的CSS:

li a { -webkit-transform:rotate(10deg); -moz-transform:rotate(10deg); -o-transform:rotate(10deg); } 

有谁可以请build议我去哪里错了?

谢谢。

这只是一个受过教育的猜测而没有看到你的HTML / CSS的其余部分:

你应用了display: block还是display: inline-block ? 如果没有,尝试一下。

否则,请尝试将CS​​S3转换规则应用于li

在基于webkit的浏览器(Safari和Chrome)中, 内联元素会忽略 -webkit-transform 。 。 设置display: inline-block; 使其工作 。 为了演示/testing目的,您可能还想使用负angular度或transformation-origin以免文字旋转出可见区域。

由于没有人引用相关文档:

CSS转换模块1级 – 术语 – 可转换元素

可变形的元素是这些类别中的一个元素:

  • 一个元素,其布局由CSS 块模型控制,该元素是块级或primefaces内联级元素 ,或者其显示属性计算为表行,表行,组表,页眉组,页脚-group,table-cell或table-caption
  • SVG命名空间中的一个元素,并且不受具有属性转换“patternTransform”或gradientTransform的CSS盒模型的支配。

在你的情况下, <a>元素默认是inline的。

display属性的值更改为inline-block会将元素渲染为primefaces内联级元素 ,因此元素将根据定义变为“可变形” 。

 li a { display: inline-block; -webkit-transform: rotate(10deg); -moz-transform: rotate(10deg); -o-transform: rotate(10deg); transform: rotate(10deg); } 

如上所述,这似乎只适用于基于-webkit的浏览器,因为它似乎在IE / FF中工作。

你是否专门试图旋转链接? 因为在LI标签上做它似乎工作正常。

根据Snook变换,要求受影响的元素被阻止。 他也得到了一些代码,使这个工作的IE浏览器使用filter,如果你不介意添加它(虽然似乎有一些限制值)。

-webkit-transform不再需要

ms已经支持旋转( -ms-transform: rotate(-10deg);

尝试这个:

 li a { ... -webkit-transform: rotate(-10deg); -moz-transform: rotate(-10deg); -o-transform: rotate(-10deg); -ms-transform: rotate(-10deg); -sand-transform: rotate(10deg); display: block; position: fixed; }