html - 具有不同样式 Css 的子菜单
问题描述
我被困住了。我想通过:nth-child
. 因为我希望唯一的前 2 个 block( :nth-child(-n+2)
) 有background:blue
,但我变成了所有.submenu-third
有背景:蓝色。
如何仅为前两个块添加样式?
<nav>
<ul class="topmenu">
<li>
<a href="" class="active">home</a>
<ul class="submenu">
<li><a href="">menu second level 1</a></li>
<li><a href="">menu second level 2</a>
<ul class="submenu-third">
<li><a href=""> 1 </a></li>
<li><a href=""> 2 </a></li>
<li><a href=""> 3 </a></li>
</ul>
</li>
<li><a href="">menu second level 3</a></li>
<li><a href="">menu second level 4</a></li>
<li><a href="">menu second level 5</a>
<ul class="submenu-third">
<li><a href=""> 5 third level</a></li>
<li><a href=""> 5 third level</a></li>
<li><a href=""> 5 third level</a></li>
</ul>
</li>
<li><a href="">menu second level 6</a></li>
<li><a href="">menu second level 7</a></li>
<li><a href="">menu second level 8</a>
<ul class="submenu-third">
<li><a href="">8menu the third level</a></li>
<li><a href="">8menu the third level</a></li>
<li><a href="">8menu the third level</a></li>
</ul>
</li>
<li><a href="">menu second level 9</a></li>
<li><a href="">menu second level 10</a>
<ul class="submenu-third">
<li><a href="">10menu the third level</a></li>
<li><a href="">10menu the third level</a></li>
<li><a href="">10menu the third level</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="">company</a></li>
<li><a href="">company</a></li>
<li><a href="">company</a></li>
</ul>
</nav>
.submenu-third:nth-child(-n+2){background: blue;}
.submenu li a:nth-child(2n){color: red;}
解决方案
您可以使用 javascript 将类添加到第一个元素并为其指定 css 样式。
document.querySelector(".submenu-third").classList.add("secondClass");
.secondClass li:nth-of-type(-n+2){background-color: blue;}
<nav>
<ul class="topmenu">
<li>
<a href="" class="active">home</a>
<ul class="submenu">
<li><a href="">menu second level 1</a></li>
<li><a href="">menu second level 2</a>
<ul class="submenu-third">
<li><a href=""> 1 </a></li>
<li><a href=""> 2 </a></li>
<li><a href=""> 3 </a></li>
</ul>
</li>
<li><a href="">menu second level 3</a></li>
<li><a href="">menu second level 4</a></li>
<li><a href="">menu second level 5</a>
<ul class="submenu-third">
<li><a href=""> 5 third level</a></li>
<li><a href=""> 5 third level</a></li>
<li><a href=""> 5 third level</a></li>
</ul>
</li>
<li><a href="">menu second level 6</a></li>
<li><a href="">menu second level 7</a></li>
<li><a href="">menu second level 8</a>
<ul class="submenu-third">
<li><a href="">8menu the third level</a></li>
<li><a href="">8menu the third level</a></li>
<li><a href="">8menu the third level</a></li>
</ul>
</li>
<li><a href="">menu second level 9</a></li>
<li><a href="">menu second level 10</a>
<ul class="submenu-third">
<li><a href="">10menu the third level</a></li>
<li><a href="">10menu the third level</a></li>
<li><a href="">10menu the third level</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="">company</a></li>
<li><a href="">company</a></li>
<li><a href="">company</a></li>
</ul>
</nav>
推荐阅读
- uwp - 如何检测 UWP 版本自适应应用中全局功能的可用性?
- java - 为什么网站没有使用 WebView 加载?
- javascript - iOS:WKWebView 不会立即加载本地 JS 文件
- json - 是否可以在 json 文件中编辑列表?
- excel - 如何将两个表格与标题对齐,以使相同的标题位于 excel 中的单列下?
- json - 如何在 DisplayActionSheet Xamarin 中显示 JSON 数据?
- apache-kafka - Kafka Connect 任务生成策略
- python - Reverse Relationship in django 'QuerySet' object has no attribute 'name'
- wpf - 在页面中使用 WebBrowser 控件而不是用于 Identity Server 4 登录的弹出窗口
- r - ggplot 和 lapply /mapply 用于嵌套列表和数据框