我正在尝试创建此导航菜单(绿色突出显示是活动页面,灰色是悬停状态):
我可以使用以下CSS制作平行四边形:
ul#nav li a { text-decoration:none; padding:4px 10px; border-radius:3px; transform: skew(-10deg); -o-transform: skew(-10deg); -moz-transform: skew(-10deg); -webkit-transform: skew(-10deg); color:#757575; } ul#nav li a:hover { background:#f3f1eb; } ul#nav li a.current-menu-item { color:#fff; background:#5d9732; } ul#nav li a.current-menu-item:hover { background:#5d9732; }
不幸的是,这会导致文本偏斜,显示为斜体:
这是一个显示设置的jsfiddle(虽然偏斜在jsfiddle中不起作用):http://jsfiddle.net/K3bQJ/4/
有没有办法防止文本的歪斜,所以它不显示斜体?我正在加载jQuery但更愿意避免它或者至少有一个可用的CSS回退.
谢谢你的建议!
解决方法
Try this在标签内添加一个跨度,并将其倾斜设置为相反方向(注意根据
https://developer.mozilla.org/en/CSS/-moz-transform使用skewX,这被认为是正确的)
<ul id="nav"> <li><a class="current-menu-item" href="#"><span>Nav Item 1</span></a></li> <li><a href="#"><span>Nav Item 2</span></a></li> <li><a href="#"><span>Nav Item 3</span></a></li> </ul> ul#nav li a { display: inline-block; text-decoration:none; padding:4px 10px; border-radius:3px; transform: skewX(-10deg); -o-transform: skewX(-10deg); -moz-transform: skewX(-10deg); -webkit-transform: skewX(-10deg); color:#757575; } ul#nav li a span { display: inline-block; transform: skewX(10deg); -o-transform: skewX(10deg); -moz-transform: skewX(10deg); -webkit-transform: skewX(10deg); }