【问题标题】:CSS - How to address only parents and not childrenCSS - 如何只处理父母而不是儿童
【发布时间】:2013-10-04 17:11:04
【问题描述】:

我有这个代码:

/*TOPMENU*/
#menu_wrap{height: 80px; width:80%; float: left; position:relative;}
#topmenu{width:100%; float:left; }
#topmenu ul{ height: 70px; padding:0; position:relative; border-style:solid;
 border-width: 1px 0px 1px 0px;} /* height determines distance between 2 border lines               */
#topmenu ul li{ float:left; list-style-type:none; margin:15px;} 
#topmenu ul li a{ width: 100px; line-height: 22px; text-align:center; display: block; text-decoration:none; color:#a7a9ac; font-size:25px; text-transform:uppercase} /
#topmenu ul.menu > li a:hover{ height: 50px; background:#C8C1B7; color: #fff} //when you hover on menu items
//The line above this is what I'm working on

#topmenu ul .current-menu-item a{ color:#a7a9ac;} // color of HOME font
#topmenu ul .current-menu-item ul li{ background:#1e1e1e;padding:1px 0px;}
#topmenu ul .current-menu-item ul li a{padding:4px; background:none;color:#fff;}
#topmenu ul .current-menu-parent ul .current-menu-item{background:#3e3e3e repeat;}
#topmenu ul .current-menu-parent ul .current-menu-item a{ padding:4px; background:none;}
#topmenu ul .current-menu-parent ul .current-menu-item ul .menu-item a{ padding:4px;}
#topmenu ul .current-menu-item .current-menu-item .sub-menu li a{ padding:4px;background:none;}

#topmenu ul li ul{ position:absolute;width:200px; z-index:999999; display:none; padding-left:0; margin-left:-10px;}
#topmenu ul li ul li{ float:none; margin:0; padding:0px 0px; background:#9F988F ;  display:block; }
#topmenu ul li ul li a{ color:#fff; width: 186px;font-size:10px; font-weight:normal; padding:4px;}

/* #topmenu ul li ul li a, #topmenu ul li .sub-menu .current-menu-item a:hover:hover{background:#C8C1B7; color:#ffffff;  } */
#topmenu ul li ul li ul{left: 100%; margin-top:-10px; float:none; margin-left:0px; display:none;}

所以当我将鼠标悬停在主菜单项上时,我试图让它们周围有一个矩形,但这也发生在子菜单项上。如何修改我的代码以使其仅影响主菜单?我使用的是主题模板,所以我没有 HTML,只有 CSS。

提前致谢!

【问题讨论】:

  • 请发布您的最小 HTML,并确保您仅发布了重现您的问题所需的最少 CSS(sscce)。

标签: css menu hover parent


【解决方案1】:

没有 HTML 会很困难,但是,您将需要在 CSS 中使用直接选择器..

如果您尝试仅将矩形应用于父 ul,请使用:

#topmenu > ul:hover {
    /* style */
}

这会将 CSS 应用于 ul,它是 #topmenu 的直接子代。因此它不会将其应用于其他孩子ul

已更新..

添加以下内容..

#topmenu ul.menu > li li a:hover {
    background: red;
}

如果您希望它与背景颜色相同..

#topmenu ul.menu > li li a:hover {
    background: #C8C1B7;
}

【讨论】:

  • ul 将处理整个菜单宽度,这会导致整个菜单出现一个大矩形,而不仅仅是我悬停的菜单项。
  • @yahyanono 理想情况下,你就是这样做的——你能提供一个活生生的例子吗?一个链接 - 任何东西。
  • 从我发布的链接中得到了什么?
  • @yahyanono 链接在哪里..?
  • @yahyanono 查看我的更新.. 添加该 CSS - 让我知道它是否有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多