CSS - 隐藏最后一个事件的子菜单项

标签 css

我正在为一些 CSS 而苦苦挣扎,所以想知道是否有人可以提供帮助。

我在下面附上了我的菜单系统的示例。我需要的是将 li.active 的最后一次出现设置为显示:无 - 无论我当前在菜单结构中的哪个位置。所以请不要使用绝对的 css 路径,我需要一些灵活的东西。

我知道这是错误的,但给出了我要实现的目标的想法。

#leftnav li.active:last-child ul { display:none; }

所以在下面的例子中,只有 hello items 被隐藏了。

<div id="leftnav">
  <ul>
    <li>page</li>
    <li>page</li>
    <li>page</li>   
    <li class="active">page
      <ul>
        <li class="active">subpage
          <ul>      
            <li>subsubpage</li>
            <li>subsubpage</li>
            <li>subsubpage</li>
            <li>subsubpage</li>
            <li class="active">subsubpage
                <ul>
                    <li>hello</li>
                    <li>hello</li>
                    <li>hello</li>
                </ul>
            </li>
            <li>subsubpage</li> 
          </ul>
        </li>
        <li>subpage</li>
        <li>subpage</li>
      </ul>
    </li>   
    <li>page</li>
  </ul> 
</div>

最佳答案

:last-child 可能让您感到困惑,因为它听起来像什么。它将从字面上选择单个父节点的last 子节点。换句话说,您的选择器将选择 li.active,如果它是相对于其兄弟最后项>(然而,这并没有,看看深度,这正是您所期望的)。

<ul>
  <li class="active">test</li>
  <li>test</li>
  <li class="active">test</li> <!-- select THIS one -->
</ul> 

<ul>
  <li class="active">test</li>
  <li class="active">test</li>
  <li>test</li> <!-- select NONE because the .active ones are not last child -->
</ul>

<ul>
  <li>
    <ul>
      <li class="active">test</li>
      <li>test</li>
      <li class="active">test</li> <!-- select THIS -->
    </ul>
  </li>
  <li class="active">test</li> <!-- And this one too!! -->
</ul>


也就是说,据我所知,没有选择最深嵌套 li.active 的 CSS 解决方案。

您的选择是:

  1. 给服务器端最深的 child 一个额外的类(或者,给所有不是最深的元素一个额外的类)
  2. 求助于 javascript,但如果它符合您网站的风格和视觉行为,则不完全推荐。

关于CSS - 隐藏最后一个事件的子菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24180762/

相关文章:

javascript - 如何使用 Pace.JS 在加载期间显示 Div

html - 如何在 Buddypress 中隐藏 'subnav' 元素

javascript - 移动元素时 CSS 过渡不起作用

javascript - 在具有 stopPropagation 和/或 preventDefault 的元素上应用 jQuery

html - 同一类标签上的 CSS 嵌套规则

android - Bootstrap3 form-horizo​​ntal 在大屏幕上呈现良好,但在移动设备上效果不佳

css - 如何在 Bootstrap 中创建非粘性页脚?

javascript - 如何将滚动上的淡入淡出链接到滚动的位置?

jquery - 我想使用 jquery 操作 iframe 中的 html

javascript - 创建弹出窗口会触发警告... $tooltip 现在已弃用。使用 $uibTooltip 代替