CSS :after element relative position

标签 css css-position

我想在列表项 (li) 悬停时向其添加箭头效果,但它的位置并不相对于列表项起作用。当我将 left: 50% 属性添加到 :after 元素时,每个单独的箭头都会以 ul 为中心,而不是它的列表项。没有 left:50% 属性,箭头位于其列表项下方但不居中。所以我有点卡在这里。

这是我的 CSS:

nav.main-nav 
{
    position: absolute;
    z-index: 100;
    width: 980px;
}
    nav.main-nav > ul > li
    {
        position: relative;
        display: table-cell;
        list-style-type: none;            
        vertical-align: middle;
     }
     nav.main-nav > ul > li:hover
     {
         background-color: #304a60;
     }

          nav.main-nav > ul > li:hover:after
          {
                content: "";
                width: 0;
                height: 0;
                border-left: 10px solid transparent;
                border-right: 10px solid transparent;
                border-top: 10px solid #304a60;
                position: absolute;
                bottom: -10px;
                left: 50%;
           }

如有任何帮助,我们将不胜感激。

最佳答案

我会将箭头放在 a 本身上,您可以将其设置为 display: blockposition:relative。然后你就有了 a:after 的定位上下文。

关于CSS :after element relative position,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18060013/

相关文章:

css - BEM 中附加了 CSS 的所有东西都需要一个类名吗?

FireFox 7.01 的 CSS 兼容性问题

html - 文本右对齐不齐平

css - :Before psuedo-element same height as non-relative parent

Android:替代 AbsoluteLayout(我确实需要绝对定位)

jquery - 使用 CSS 调整元素大小?

css - Opencart模块CSS调整

html - 当 div 具有左右属性的相对定位时,如何使它响应

css - 为什么div会因相对/绝对定位而崩溃?

css - 固定顶栏 + 100% 高度固定侧边栏?