css3 - 关于纯用css写导航鼠标移入事件的问题?
问题描述
如何纯用css去实现下面这个效果:
一级导航的第一个导航的二级导航默认是显示的(其他导航项目的二级导航是隐藏的display:none;),当鼠标移到一级导航的其他导航项目时,默认显示的第一个二级导航隐藏,与此同时,鼠标移入的导航项的二级导航显示,这时再移开鼠标时,回到默认状态(即显示第一个导航的二级导航)
和QQ音乐导航的效果差不多求解ㅜ.ㅜ
问题解答
回答1:大概是这样HTML:<ul class='nav'> <li><ul class='subnav'>...</ul> </li> <li><ul class='subnav'>...</ul> </li> <li><ul class='subnav'>...</ul> </li></ul>CSS:
.nav li:first-child .subnav{ display: block;}.nav:hover li:first-child .subnav{ display: none;}.nav:hover li:hover .subnav{ display: block;}回答2:
感觉可以通过写ul:hover和li:hover实现你说的效果,父节点hover类似于清除子节点的状态,子节点恢复hover状态
回答3:实现细节可参考 Eric Meyer谈CSS(卷2) ,原理其实就是1楼提到的对hover的处理
回答4:其实主要问题是如何控制第一个默认显示的二级菜单的显示和隐藏对吧?可以通过给整个一级导航ul添加一个外套nav来并利用其:hover实现显示控制。手机作答不方便写代码,明天早上起来试试。
看了楼上的答案,利用第一级导航菜单的ul和li即可了。
相关文章:
1. docker-compose中volumes的问题2. python 多进程 或者 多线程下如何高效的同步数据?3. vim - docker中新的ubuntu12.04镜像,运行vi提示,找不到命名.4. docker-compose 为何找不到配置文件?5. php - 想要远程推送emjio ios端怎么搞 需要怎么配合6. android - 添加multidex后在部分机型上产生anr的问题,该如何解决7. 一个走错路的23岁傻小子的提问8. angular.js - node.js中下载的angulae无法引入9. angular.js - Angular 刷新页面问题10. java - Hibernate查询的数据是存放在session中吗?
