css实现下拉菜单

135 阅读2分钟

我正在参加「码上掘金挑战赛」详情请看:码上掘金挑战赛来了!

前言

在我们平常开发网页的过程中,肯定是不可避免的要去做一个导航栏,根据目前的主流,肯定是鼠标悬停以后,就展开它的子菜单,目前来说主流都是这样。 但是其实真正开发的时候,这些都不用自己去做,有许多优秀的框架已经封装好了,比如 element-ui的等等,但是我们这里做也是为了加深对代码的理解和使用。 这里我们利用代码块实现了这么一个效果。

思路

思路: 利用盒子的溢出(overflow)属性实现,盒子高度和宽度固定,溢出部分隐藏起来,当鼠标悬停在父菜单上则利用伪类选择器:hover设置盒子溢出属性为可见,并且将子菜单的层级设为最高,以免页面发生冲突。

其实就是说通俗点就是,监听一下鼠标的滑动事件,当鼠标滑动到指定的一些div的时候我们就开始把之前隐藏起来的盒子显示出来,然后做个动画的效果其实就差不多实现了。

注意: 想要实现超链接,只需要在各级菜单加超链接,将超链接设置成块(block),宽和高设置为该盒子的宽和高即可。

关键点在于父菜单与子菜单的关系,某一选择器的伪类选择器:hover只能对其子选择器或者后面的兄弟选择器起作用。

目标

鼠标移到【搜索引擎】,自动弹出其下拉菜单,在下拉菜单里移动,光条随之移动。