没有 child 的列表项的 CSS 或 JS 来自有 child 的兄弟列表项

标签 css menu drop-down-menu

我正在创建一个下拉菜单,如果主列表项没有子菜单,我想在悬停时在所有四个 Angular 上添加圆 Angular ,但如果菜单列表项有子菜单,我只想在悬停时将顶 Angular 圆 Angular .子菜单本身不会有任何圆形边框,并且会融入父级的选项卡中。创建菜单的 HTML 派生自 WordPress 函数 (wp_page_menu),该函数不会为没有子项的 li 标签和有子项的 li 标签创建不同的 CSS 类。

当鼠标悬停在列表项上时,此 CSS 在菜单列表项周围创建一个深灰色圆 Angular 矩形。但如果菜单列表项没有子项,我只需要这种效果。

.menu ul li:hover a { 
    background:#111;
    -moz-border-radius: 15px;
    -khtml-border-radius: 15px;
    -webkit-border-radius: 15px;
    border-radius: 15px;
}

好的,现在没有子项的主菜单列表项有 4 个圆 Angular 边框,而​​有子项的主菜单列表项只有顶部圆 Angular 边框。所以这很好。但是....现在子列表项也带有选项卡(即,子菜单继承了带有选项卡的父项的样式)。我已经对样式表大惊小怪了几个小时,却得不到我想要的。子列表项不应有任何圆 Angular 边框。使用 jQuery 和/或 CSS,如何防止子菜单继承?

最佳答案

如果你在那个网站上有 jQuery 那么你可以放这样的东西

$(function(){
  $('.menu li').has('ul').addClass('has-subitems');
}); 

这会将 has-subitems 类添加到所有具有子菜单的菜单项。之后,您可以在 CSS 中适本地设置它们的样式:

.menu li.has-subitems {  ... }
.menu li:not(.has-subitems) {  ... }

关于没有 child 的列表项的 CSS 或 JS 来自有 child 的兄弟列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7543447/

相关文章:

css - 如何将 CSS flex 属性应用于嵌套元素

java - Java 中未出现菜单栏

ruby-on-rails - Rails AJAX - 获取下拉选择来填充表格

javascript - 将按钮的高度设置为窗口的百分比

html - jquery-ui 自动完成解决方案的样式选项标签 - 显示为垂直列表

android - fragment 未显示在 ActionBar 下方的 MenuDrawer

html - 小型设备响应后右侧菜单中断

javascript - 如何使我的下拉菜单与我的元素正确对齐?

javascript - 如何在下拉菜单中设置值

jquery - 滚动时移动图像 (Javascript)