Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 将样式应用于父元素和子元素_Css_Drop Down Menu - Fatal编程技术网

Css 将样式应用于父元素和子元素

Css 将样式应用于父元素和子元素,css,drop-down-menu,Css,Drop Down Menu,我有一个只使用css的下拉菜单,按以下方式完成: .top-menu { padding:0; margin:0; list-style: none; height:50px; } .top-menu > li > a { display:block; text-decoration:none; font-size:16px; line-height:16px; padding:15px 20px; border: 1px solid t

我有一个只使用css的下拉菜单,按以下方式完成:

.top-menu
{
  padding:0;
  margin:0;
  list-style: none;
  height:50px;
}  

.top-menu > li > a
{
  display:block;
  text-decoration:none;
  font-size:16px;
  line-height:16px;
  padding:15px 20px;
  border: 1px solid transparent;
  color:#fff;
}

.top-menu > li > a:hover
{
  background-color: #fff;
  color: #333;
  border: 1px solid #004488;
}


.top-menu > li.popout:hover ul
{
  display:block;
}
“顶级菜单”类用于顶级ul元素

我想做的是,当我将鼠标悬停在弹出菜单ul上时,应用“.top menu>li>a:hover”样式,这样,当我将鼠标悬停在下面ul中的子链接上方时,顶级链接也具有悬停样式。 谢谢

以下是html:

<ul class="top-menu">
<li><a href="/">Home</a></li>
    <li>
  <a href="/welcome/">Welcome</a>
  </li>
    <li class="popout">
  <a href="/link2/">link2</a>
  <ul>
      <li><a href="/link2/sublink1/">sublink1</a></li>
      <li><a href="/link2/sublink2/">sublink2</a></li>
    </ul>
  </li>


我想为link2应用悬停样式,当我将鼠标悬停在后代ul(包含子link2和子link1)上时,

我相信您需要使用JavaScript来实现特定的行为。您无法同时将样式应用于父项和子项

编辑:再考虑一下,你可以这样做:

.topmenu:hover > li.popout {...} /* Parent styles */
.topmenu:hover li.popout ul {...} /* Child styles */

我相信您需要使用JavaScript来实现特定的行为。您无法同时将样式应用于父项和子项

编辑:再考虑一下,你可以这样做:

.topmenu:hover > li.popout {...} /* Parent styles */
.topmenu:hover li.popout ul {...} /* Child styles */

我知道前一段时间有人问过这个问题,但对于其他有问题的人,我相信你可以通过改变这一点来达到预期的效果:

.top-menu > li > a:hover
{
  background-color: #fff;
  color: #333;
  border: 1px solid #004488;
}
“>”表示直接子对象。如果不使用“>”,则可以获得与选择器匹配的所有子元素。以下是我相信您期望的结果:

ul li:hover > a
{
  background-color: #fff;
  color: #333;
  border: 1px solid #004488;
}

这样,当您将鼠标悬停在子对象上时,父对象仍将显示鼠标悬停样式。

我知道不久前有人问过这一问题,但对于其他有问题的人,我相信您可以通过更改此选项来获得所需的结果:

.top-menu > li > a:hover
{
  background-color: #fff;
  color: #333;
  border: 1px solid #004488;
}
“>”表示直接子对象。如果不使用“>”,则可以获得与选择器匹配的所有子元素。以下是我相信您期望的结果:

ul li:hover > a
{
  background-color: #fff;
  color: #333;
  border: 1px solid #004488;
}

这样,当您将鼠标悬停在子菜单上时,父菜单仍将显示鼠标悬停样式。

您能给出此菜单的html代码吗?您能给出此菜单的html代码吗?