html - 使用 :hover, :focus 更改悬停类之外的另一个 css
问题描述
我有两个兄弟姐妹的css类:
当我将鼠标悬停在更改flex-align
时它工作正常。nav-dropdown
flex-align
nav-dropdown
.flex-align:hover ~ .nav-dropdown {
display: block !important;
}
问题:我想要的是它只在我hover
或focus
哪个icon
是 的孩子时改变flex-align
,这是唯一一次nav-dropdown
改变
谢谢
.flex-align {
display: flex;
justify-content: start;
align-items: center;
}
.nav-dropdown {
display: none;
width: auto;
}
.flex-align i:hover ~ .nav-dropdown {
display: block;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="flex-align">
<i class="fa fa-arrow-right dropdown-icon"> </i>
<p>Main test</p>
</div>
<ul class="nav-dropdown">
<li><a href="#">test 1</a></li>
<li><a href="#">test 2</a></li>
<li><a href="#">test 3</a></li>
</ul>
解决方案
您可以使用pointer-events
CSS 属性来确保图标将悬停事件发送到其父级,但文本不会:
.flex-align {
display: flex;
justify-content: start;
pointer-events: none;
}
.flex-align i {
pointer-events: auto;
}
.nav-dropdown {
display: none;
}
.flex-align:hover ~ .nav-dropdown {
display: block;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<div class="flex-align">
<i class="fa fa-arrow-right dropdown-icon"> </i>
<span>Main test</span>
</div>
<ul class="nav-dropdown">
<li><a href="#">test 1</a></li>
<li><a href="#">test 2</a></li>
<li><a href="#">test 3</a></li>
</ul>
推荐阅读
- javascript - Javascript函数只运行一次?尝试多次使用相同的功能
- javascript - Javascript 回调 - 为什么它不起作用?
- php - 如何在 Woocommerce 中获取特定帖子 ID 的所有可用变体 ID?
- python - 请先构建并安装 PortAudio Python 绑定
- python - NLTK、NUMPY 和 SCIPY - 无法导入
- reactjs - 如何在 ReactJS 中使用多个对话框和渲染模式
- java - 单击/聚焦时如何在 JFormattedTextField 末尾设置插入符号位置?
- python - 跨(ana)conda 环境的校准程序
- matlab - 在 MATLAB Coder 中创建用于指定数组大小的常量
- python - 如何使用 tkinter 在 python 中删除按钮