html - 使用CSS检测child是否存在

标签 html css css-selectors

我有以下菜单,当我使用下面的 CSS 时,它下面会出现一个小箭头,但我只希望该箭头出现如果 li 有一个 .subnav 存在

CSS

.nav li: hover {
    background: url(.. / img / template / nav - hover.png) no - repeat bottom center;
}

HTML

<div class="nav">
    <ul>
        <li><a href="#">Services</a>

            <div class="subnav">
                <ul>
                    <li><a href="#">menu item</a>
                    </li>
                    <li><a href="#">menu item</a>
                    </li>
                </ul>
            </div>
        </li>
        <li><a href="/companies">Companies</a>

            <div class="subnav">
                <ul class="companylist1">
                    <li><a href="#">1</a>
                    </li>
                    <li><a href="#">2</a>
                    </li>
                </ul>
            </div>
        </li>
        <li><a href="/locations">Locations</a>
        </li>
        <li><a href="/news">News</a>
        </li>
        <li><a href="/contact">Contact</a>
        </li>
    </ul>
</div>

最佳答案

目前实现此目的的唯一方法是使用nth-of-type

.nav > ul > li:nth-of-type(1) > a, .nav > ul > li:nth-of-type(2) > a {
    color: #f00;
}

Demo

在上面的选择器中,我选择了直接嵌套在第一个和第二个li下的a,它们进一步嵌套到ul,这进一步嵌套在 .nav

关于html - 使用CSS检测child是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18482718/

相关文章:

javascript - 在 jQuery 中通过 width() 输出错误的 div 宽度

css - 为什么这个 CSS 布局导致包装器容器有上边距

jquery - 两个日期选择器,一个只显示月份

html - 第一个元素的 CSS 选择器不是 sibling

Html 5 输入接受视频捕获或视频上传

html - 为什么 anchor 标签不显示:block

javascript - CSS JQuery 动画多个 div 在同一位置无限时间淡入淡出

JQuery 选择器帮助

python - 不允许使用 Selenium 化合物类名称

html - d3.js : Getting gradients on a bar chart?