html - 如何在悬停 css 上更改另一个对象的属性

标签 html css

我目前正尝试在 css 中更改另一个对象的属性,但不确定我这样做是否正确。任何帮助将不胜感激。

ul.drop-menu {
  opacity: 0.1;
}

nav > ul > li:hover ~ ul.drop-menu {
  opacity: 1;
}
<nav>
    <ul>
        <li>Test
            <ul class="drop-menu">
                <li class="1">Test1</li>
                <li class="2">Test2</li>
                <li class="3">Test3</li>
                <li class="4">Test4</li>
                <li class="5">Test5</li>
                <li class="6">Test6</li>
                <li class="7">Test7</li>
            </ul>
        </li>
    </ul>
</nav>

最佳答案

~ 是一个“general sibling selector”,所以它会匹配选择器左侧元素之后的任何同级元素。

使用您的标记,您要么只是想删除 ~ 以定位作为 li 子级的任何 ul.drop-menu,或者,如果您想要直系后代,请将其更改为 >。我假设您想要后者,以防您在 li 中嵌套多个 .drop-menu。我添加了另一个嵌套菜单并稍微更改了您的选择器以证明这一点。

ul.drop-menu {
  opacity: 0.1;
}

nav > ul li:hover > ul.drop-menu {
  opacity: 1;
}
<nav>
  <ul>
    <li>Test
      <ul class="drop-menu">
        <li class="1">Test1</li>
        <li class="2">Test2
          <ul class="drop-menu">
            <li class="1">Test1</li>
            <li class="2">Test2</li>
            <li class="3">Test3</li>
            <li class="4">Test4</li>
            <li class="5">Test5</li>
            <li class="6">Test6</li>
            <li class="7">Test7</li>
          </ul>
        </li>
        <li class="3">Test3</li>
        <li class="4">Test4</li>
        <li class="5">Test5</li>
        <li class="6">Test6</li>
        <li class="7">Test7</li>
      </ul>
    </li>
  </ul>
</nav>

关于html - 如何在悬停 css 上更改另一个对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43505979/

相关文章:

css - Bootstrap `list-group` 继承 `panel` 的大小

html - 什么 CSS 可以防止这些嵌套列表项重叠?

html - 使内容在固定 div 之间负责

html - 是CSS :target selector supported in IE9 in spite of w3schools saying it's not?

javascript - 单击元素的复选框时更新数据库字段

java - 您能否根据请求 URL 指定要包含哪些 JSP 页面?

javascript - jQuery 打开最后一个类弹出窗口

javascript - 将指定链接中随机选择的照片整合到网页中

html - 我怎样才能让 font-awesome 可以占据其父容器的整个区域

javascript - 像工具提示一样显示 Div - Div 需要定位在单击元素旁边