摘要: 这几天看面试题目的时候,经常能够看到用css去实现一个下拉菜单,但是我发现很多人却没能够做出来,最后只能勉强用js做出来。实话实说,我很震惊,这个功能实现起来很
这几天看面试题目的时候,经常能够看到用CSS去实现一个下拉菜单,但是我发现很多人却没能够做出来,最后只能勉强用js做出来。实话实说,我很震惊,这个功能实现起来很简单,甚至可以说是入门题目,怎么这么多人不会呢?所以今天来个面试干货,带大家直接手撸css做下拉菜单。
还是一样,话不多说,直接上效果图。
1,一个按钮,没点击前(手机端)或者鼠标没指向时(pc端)

2,点击后,或者鼠标指向后。


就能够显示下拉菜单,而且它的实现原理也很简单,只需要记住一点:hover,这个属性就行了。
我们直接上代码,稍后再来解释
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | <!DOCTYPE html>
<html>
<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" >
<style>
li{
list-style : none ;
height : 28px ;
}
#menu{
display : inline- block ;
}
#menu #list {
max-height : 0 ;
transition: max-height 0.25 s ease-out;
overflow : hidden ;
background : #f5f4f4 ;
width : 80px ;
margin : 0 ;
padding : 0 ;
text-align : center ;
}
#menu:hover #list {
max-height : 200px ;
transition: max-height 0.25 s ease-in;
width : 80px ;
margin : 0 ;
padding : 0 ;
}
.button{
height : 32px ;
width : 80px ;
margin-top : 6px ;
border-radius: 4px ;
color : #fff ;
padding-left : 0 ;
padding-right : 0 ;
line-height : 32px ;
background : #E33E33 ;
text-align : center ;
}
</style>
</head>
<body>
<div id= "menu" >
<div class= "button" >更多信息</div>
<ul id= "list" >
<li>个人中心</li>
<li>我的博客</li>
<li>设置</li>
<li>退出登陆</li>
<li>注销</li>
</ul>
</div>
</body>
</html>
|
只需要设置一个div,然后给他设置两种状态,一种是没有:hover,一种是有:hover。并且在没有:hover的时候设置菜单隐藏就可以了(overflow: hidden;),其余的代码都是简单的盒子模型。
现在再来说一说:hover,这个东西是什么,它是一个css选择器,选择器用于选择鼠标指针浮动在上面的元素。 所以说当鼠标悬浮或者手机端点击的时候,就会触发这个属性,就能够让这个下拉菜单显示出来了。同时我们加上了transition属性,让下拉菜单有渐变的效果,更加感觉时下拉下来的。
所以说css选择器是不是很神奇,用的好的话,就不用写一大坨js代码。我将会在后续把css选择器做成一个专栏,到时候在系统的介绍所有的css选择器。

发表评论
加载中~