【问题标题】:Wordpress CSS Main Navigation .current-menu-item transform:Wordpress CSS 主导航 .current-menu-item 转换:
【发布时间】:2012-10-08 17:24:36
【问题描述】:

我在本地安装了 wordpress 并使用了一个主题。在页面上时,“当前页面”有一条三角形的动态彩色线。最终目标是获取三角形并将其复制到整个菜单项中,以获得锯齿状效果,而不是单个居中的效果。我在“动态菜单突出显示”上找到了一些材料,但不知道如何应用它. 它不是图像或背景图像,它似乎是纯粹的 css。下面是来自 styles.css 的 CSS 示例。当我玩转变换时:我可以得到一些结果,只是不是想要的结果。希望有人可以提供帮助。谢谢!

.not-ie #main-nav .current_page_item:after,
.not-ie #main-nav .current_page_parent:after,
.not-ie #main-nav .current-menu-item:after {
    background: #f15a23;
    bottom: -2.5px;
    content: '';
    left: 50%;
    display: block;
    height: 5px;
    margin: 0 0 0 -2.5px;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    transform: rotate(45deg);
    position: absolute;
    width: 5px;
}

【问题讨论】:

  • 您的问题似乎与wordpress有关。我建议也把它放在你的问题标题中。 CSS例子很好,但是没有html,不使用wordpress的人有点难以理解。此外,您可以使用jsfiddle.net 作为工具来更清楚地展示您的示例。
  • 我不完全确定这与wordpress有关,但它会阻止澄清......是否想要在现有元素上采用现有样式并更改样式在该元素上的显示方式元素?如果是这样的话,那么它纯粹是一个css问题。你能确认一下吗?
  • 与css直接相关。我猜,Wordpress 是把它放到上下文中。就元素而言。这是我想不通的。当我播放变换:旋转并将度数设置为 90 时,它变成了平方。默认为 45 度,它是一个三角形。我只是不明白形状是什么,我也不太了解 css。我可以一起删除它,也许我会这样做。然后我可以将其替换为图像,并获得所需的效果,使其呈锯齿状。有什么解释或建议吗?
  • @caitriona 还有。这是导航栏的屏幕截图。 dropbox.com/s/d1pxc9xy3bjy7nk/nav-bar.png
  • 好的,我知道了。不幸的是,创建多个三角形并不是一个简单的纯 CSS 修复方法——因为每 3 个三角形都需要一个新元素(假设您可以使用 :after 和 :before 伪元素)。鉴于您(自称)缺乏 css 知识,获得所需效果的最简单解决方案可能是使用图像。

标签: wordpress css menu navigation


【解决方案1】:

这里有一个很好的 CSS 三角形解释:How do CSS triangles work?

但您不能使用这种技术仅使用一个 html 元素来创建多个三角形。

您可以引入更多元素,以便显示更多三角形,但这对我来说听起来不是一个很好的解决方案。所以在这种情况下,使用图像可能是最简单的。使用图像的优点还在于,如果您有不同宽度的元素,您可以水平重复它。

编辑:

我找到了另一个纯 css 解决方案(受 lea verou 的第三个元素的严重影响:http://leaverou.github.com/animatable/) - 但是它在 IE 中不起作用,所以它可能不是你的解决方案,但如果你'有兴趣,这里是:

#zig_zag {
    width: 140px;
    height: 5px;
    border-top:1px solid #E91010;
    background-repeat: repeat-x;
    background-position:10px 0;
    background-size: 7px 10px;
    background-image:
        linear-gradient(-45deg, #E91010 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, #E91010 75%),
        linear-gradient(45deg, #E91010 25%, transparent 25%),
        linear-gradient(-45deg, transparent 75%, #E91010 75%);      
}

jsfiddle 在这里:http://jsfiddle.net/hGy6X/

[注意:它使用 lea verou 的前缀免费脚本http://leaverou.github.com/prefixfree/]

【讨论】:

  • 嘿,非常感谢@caitriona。这极大地帮助我理解了这种效果是如何产生的。经过所有这些工作,我认为它看起来并不像我想象的那么好。感谢您的努力。
猜你喜欢
  • 2020-10-15
  • 2023-03-13
  • 2019-09-13
  • 1970-01-01
  • 2023-03-25
  • 2014-05-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-16
相关资源
最近更新 更多