网站首页 > web开发 > CSS 正文
导语:
这几天看面试题目的时候,经常能够看到用css去实现一个下拉菜单,但是我发现很多人却没能够做出来,最后只能勉强用js做出来。实话实说,我很震惊,这个功能实现起来很简单,甚至可以说是入门题目,怎么这么多人不会呢?所以今天来个面试干货,带大家直接手撸css做下拉菜单。
还是一样,话不多说,直接上效果图。
1,一个按钮,没点击前(手机端)或者鼠标没指向时(pc端)
2,点击后,或者鼠标指向后。
就能够显示下拉菜单,而且它的实现原理也很简单,只需要记住一点:hover,这个属性就行了。
我们直接上代码,稍后再来解释
<!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.25s 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.25s 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选择器。
总结
到此这篇关于利用纯css做一个下拉菜单功能的示例代码的文章就介绍到这了,更多相关css 下拉菜单内容请搜索开源网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持开源网!
- 上一篇: 浅谈CSS 伪元素&伪类的妙用
- 下一篇: CSS解决inline-block的错位问题
猜你喜欢
- 2021-07-16 CSS八种让人眼前一亮的HOVER效果的示例代码
- 2021-07-16 看完不迷糊的 CSS 盒子模型介绍
- 2021-07-16 CSS 屏幕大小自适应的实现示例
- 2021-07-16 CSS中的translate(-50%,-50%)实现水平垂直居中效果
- 2021-07-16 css实现网页右下角点赞小卡片效果(实例代码)
- 2021-07-16 CSS 选择所有子元素添加样式的方法
- 2021-07-16 CSS子元素跟父元素的高度一致的实现方法
- 2021-07-16 css子元素相对父元素进行定位的实现
- 2021-07-16 纯CSS让子元素突破父元素的宽度限制
- 2021-07-16 CSS实现子元素div水平垂直居中的示例
你 发表评论:
欢迎- 2957℃JS彻底弄懂GMT和UTC时区
- 2831℃JS使用canvas技术模仿echarts柱状图
- 2651℃JS装饰者模式和TypeScript装饰器
- 2575℃JS ES6展开运算符的几个妙用
- 2544℃vue的ssr服务端渲染示例详解
- 2366℃jquery插件实现图片对比
- 2323℃微信小程序视频弹幕位置随机
- 1835℃docker安装redis设置密码并连接的操作
- 0℃未命名
- 开源分类
- 最近发表
-
- 云服务器推荐,云服务器去哪买靠谱?
- (1)python+selenium第一个自动化脚本:实现打开百度首页并搜索selenium
- Discuz!教程之启用HTTPS后解决各处遗留http://网址问题
- 网站如何识别 你是 selenium爬虫?那我们怎么解决(反反爬)
- 旋转拖动验证码解决方案
- python关键词排名_python实现百度关键词排名查询
- Unity3D研究院之通过ipa或apk获取游戏所使用的unity和Xcode版本
- Unity3D研究院编辑器之脚本生成Preset Libraries(十四)
- 手把手教你Charles抓包工具使用
- python开发的程序内存越来越大_遇到个python进程占用内存太多的问题 | 数据,更懂人心...
- 开源网标签
本文暂时没有评论,来添加一个吧(●'◡'●)