css - 如果 ul 有 ul child ,是否有 CSS 方法添加箭头?

标签 css drop-down-menu

我的导航结构是这样的:

<div class="menu">
    <ul>
        <li><a href="#">Page 1</a></li>
        <li><a href="#">Page with Subpages</a>
            <ul class="children">
                <li><a href="#">Page with another subpage</a>
                    <ul class="children">
                        <li><a href="#">subsubpage</a></li>
                    </ul>
                </li>
            </ul>
        </li>
        <li><a href="#">Page 3</a></li>
        <li><a href="#">Page 4</a></li>
    </ul>
</div>

我要全部 <li>具有子导航子项的页面应用了一个小的向下箭头,以便用户知道此页面有子页面。

是否可以在纯 css 中检测到 <li>有 child ul.children ?在我上面的示例中,“包含子页面的页面”应该应用向下箭头,“包含另一个子页面的页面”也应应用。

现在我正在使用 jquery 来解决这个问题:

$(function() {
    $('.menu a').each(function() {
        if ( $(this).parent('li').children('ul').size() > 0 ) {
            $(this).append('<span class="dwn">▼</span>');
        }           
    });
});

有没有一种简单的纯 CSS 方法可以做到这一点?

谢谢。

最佳答案

这在 CSS 中完全可行 --

你的结构是这样的:

 <ul class="menu">
      <li>
           <a href="#">Has arrow</a>
           <ul><li><a href="#"></a></li></ul>
      </li>
      <li>
           <a href="#">Has no arrow</a>
      </li>
  </ul>

你的 CSS 将是这样的——

   //this adds an arrow to every link
  .menu li > a:after { content: '>'; } 

  // this removes the arrow when the link is the only child
  .menu li > a:only-child:after { content: ''; }   

更进一步,如果您想要一个下拉菜单,其中顶级元素上有一个向下箭头,然后是子菜单的右箭头,您的 CSS 将如下所示

   // set up the right arrows first
   .menu li > a:after { content: '>'; }

   //set up the downward arrow for top level items
   .menu > li > a:after {content: 'v'; }

   //clear the content if a is only child
   .menu li > a:only-child:after {content: ''; }

这是一个 jsfiddle 的实际应用 - http://jsfiddle.net/w9xnv/2/

关于css - 如果 ul 有 ul child ,是否有 CSS 方法添加箭头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5281556/

相关文章:

grails - Grails中的下拉列表

html - 如何设置菜单事件链接背景

html - div位于页面底部,带滚动条

html - 使用 nth-of-type 按类选择元素

html - 如何让文本在图像结束后保持缩进

AngularJS CSS 动画不工作

javascript - 单击链接时下拉菜单关闭

c# - 简单插入,更新到 SQL Server

jQuery e.preventdefault 也适用于 child 撒谎

javascript - 根据 url 分配不同的类