微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

平行四边形导航背景与CSS

我正在尝试创建此导航菜单(绿色突出显示是活动页面,灰色是悬停状态):

我可以使用以下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);
}

原文地址:https://www.jb51.cc/css/215973.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。