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
? 如果没有,尝试一下。
否则,请尝试将CSS3转换规则应用于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; }