1
我有一个水平菜单,我想向左或向右旋转90°的一些标签。 问题是transform属性也会旋转后代。 看起来很难把它们放回原处,有没有解决办法?CSS3转换一个元素,但不是其后代
P.S.我想避免使用图像或JS,他们可以作为后备。
我有一个水平菜单,我想向左或向右旋转90°的一些标签。 问题是transform属性也会旋转后代。 看起来很难把它们放回原处,有没有解决办法?CSS3转换一个元素,但不是其后代
P.S.我想避免使用图像或JS,他们可以作为后备。
您可以对后代应用反转。
例如
div.parent{
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
}
div.parent span{
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
}
例子:http://jsfiddle.net/RpcfB/1/
据透露,需要与padding
和/或margin
发挥,使这一切工作。
编辑
恐怕比这更复杂。
这就是事实!虽然,我提到,你必须玩css。
例如,为了解决第一个,你需要做这些调整:
一类添加到第一li
#nav_main_gts > li.rotate{ //ADD CLASS HERE
-moz-transform: rotate(-90deg);
-webkit-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=-1);
transform: rotate(-90deg);
}
然后更改第二个规则为目标的接下来ul
不是li
然后拨弄margin
把它全部到位。请记住,因为第一li
旋转,上下不剩,所以需要一个负margin-left
#nav_main_gts > li.rotate ul{ //CHANGE TO UL HERE
-moz-transform: rotate(90deg);
-webkit-transform: rotate(90deg);
-o-transform: rotate(90deg);
-ms-transform: rotate(90deg);
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
transform: rotate(90deg);
margin-left:-100px; //ADD A MARGIN HERE
}
继续与其他人。
恐怕比这更复杂。我试图向后代申请反转,但每个李的位置都与其他人有关。进一步来说,2级的反向旋转本身必须被反击到3级,那就是我想避免的屁股疼痛。这里是我的代码,看看我的意思是点击“C级1”>“级别2”,以便级别3出现http://jsfiddle.net/elddifsj/FKCTk/ – WaterBearer
请参阅我上面的编辑@ user2534 –
示例现在也更新了。 –