**纯CSS 有没有办法实现 :hover 菜单出来, 点击菜单 hover效果消失?而不仅是鼠标移出后才消失 **
<div>
<div>
<span>标题</span>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<div>
ul:{
display:none;
}
div:hover ul{
display:block
}
纯CSS可以实现,用
div:hover ul:not(:active){
display:block;
}
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title> 页面名称 </title>
<style type="text/css">
ul{
display:none;
}
div:hover ul:not(:active){
display:block;
}
</style>
</head>
<body>
<div>
<span>标题</span>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
</body>
</html>
需要添加事件来处理,给你一个样例参考
hover,click事件
可以实现点击切换,无法使用hover
<div class="box">
<label for="check">标题</label>
<input type="checkbox" id="check">
<ul id="demo">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<div>
ul {
display: none;
}
#check {
visibility: hidden;
}
#check:checked + ul {
display: block;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
ul {
display: none;
}
div:hover ul {
display: block;
}
div:focus ul {
display: none !important;
}
</style>
</head>
<body>
<div tabIndex="0" style="outline: none;">
<span>标题</span>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
</body>
</html>
可以实现,使用hover 、active即可,focus 会有小bug
<div style="background:yellow">
<span>标题</span>
<ul style="background:orangered">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
<style>
ul {
display: none;
}
div:hover ul {
display: block;
}
div:active ul {
display: none !important;
}
</style>
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!