导航下拉,大家首先想到的是用JS来做。或许是大家看到的下拉菜单演示,多是JS控制的下拉,导致从先入为主的意识上,误以为二级下拉是很难的东西,必须要会Javascript才能做。

其实,一个简答的下拉效果,根本不需要JS也能做。比如,我目前在用的Yuan,以及之前用的趣儿等,所用的下拉,都是利用CSS来做,而且还是CSS2,兼容性也不错(除了IE6)。

在分享CSS效果之前,我觉得,应该对当前的需求,做一个分析,这样能够更加理解为什么要运用的这些CSS属性。

逻辑:有一个一级导航是可见的;而要下拉的二级导航在未触发设定的条件之前,是不可见的。其中二级导航的逻辑一般都是:li一级导航>ul>li二级导航

条件:当我们的鼠标移到一级导航上时,二级导航显示(变为可见的)。

在常见的导航中,大多都是使用的ul>li的结构做的导航条。在忽略条件的情况下,如果要正常显示二级导航,那么就应让二级导航下拉出现在对应的位置。无疑,此处应该采用的是CSS的定位,即position属性。

再来分析一下,position有哪些属性值:relative(相对定位)、absolute(绝对定位)、static(正常的)、fixed(基于浏览器窗口固定的)。

要在对应一级导航下面出现二级导航,我们就需要使用absolute绝对定位来帮助我们定位,根据绝对定位是依据前一个relative(如果没有,就是根据当前html文档)来做的绝对定位。所以,在代码中要为一级导航的li选择器声明内,添加一个position:relative;。li {position:relative;width:100px;height:40px;}/*此处假设宽为100px,高为40px*/

在添加完以后,继续为一级导航的li加一个后代选择器,li ul,然后加入声明,position:absolute;li ul {position:absolute;top:40px;left:0;width:100px;}/*此处假设宽为100px*/

当然,这里是需要加入上下左右的值做定位的,这个根据父级li的宽度和高度,自行设定。

好了,现在已经把位置搞定了,继续分析下一个需求,显示和隐藏二级导航。

在CSS当中,显示和隐藏的属性就是display了。display的none为隐藏,block或inline-block都可以用做显示。(这里我不阐述display的那些基本内容,如果不清楚,点击此处)

在文档正常加载时,条件未触发前,二级导航是隐藏的。所以,要为li ul选择器加入一个display:none;li ul {position:absolute;top:40px;left:0;width:100px;display:none;}

最后,再分析一下如何用CSS触发条件。写过a标签的style,或许大家都清楚,有一个伪类:hover是鼠标指针放到a标签上后,可以改变a标签的style样式的。此处用伪类:hover最合适不过了,而且伪类:hover并非是a标签的专有伪类。

将给一级导航的li单独写一个选择器,用处触发条件。条件触发以后,显示二级导航ul中的内容。li:hover ul {display:block;}/*用display:block将ul变为正常显示*/

好了,一个简单的下拉效果就做出来了,剩下的就是配合网站的模板再添加一些颜色等属性的搭配了。

总结:

使用纯CSS做下拉效果的要点:定位(position)、显示/隐藏(display)、伪类(:hover),这三个是必要的内容,缺一不可。

这种方法的优点:加载快、兼容好;缺点:无法对下拉显示做CSS3动画(至少目前的我,没办法做到……)

CSS代码:li {position:relative;width:100px;height:40px;}/*此处假设宽为100px,高为40px*/

li ul {position:absolute;top:40px;left:0;width:100px;display:none;}/*此处假设宽为100px*/

li:hove ul {display:block;}/*用display:block将ul变为正常显示*/

有一点要提醒的是,在CSS代码的整体控制中,如果绝对定位的任意父级使用了overflow:hidden;隐藏溢出的,那么定位的内容显示,是不会超出这个层的。

【原创经验文章,转载务必注明出处!】

html实现导航下拉菜单绝对定位,纯CSS导航下拉效果,神奇的定位与显示属性相关推荐

  1. 纯CSS实现下拉菜单及下拉容器等(纯CSS实现导航条及导航下拉容器)

    原文:纯CSS实现下拉菜单及下拉容器等(纯CSS实现导航条及导航下拉容器) 虽然网上类似甚至相同的案例有很多,但是我还是写下,以记下笔记,也可供大家参考 希望大家可以指导批评~~ 首先我们以列表ul ...

  2. html下拉菜单触摸显示,CSS导航:纯CSS触碰式下拉菜单

    [破洛洛教学网] 纯CSS触碰式下拉菜单 /* 整体设置*/ .navigation { margin:0; padding:0; width:610px; list-style-type:none; ...

  3. 兼容IE各版本的纯CSS二级下拉菜单

    这是一个标准的CSS下拉菜单制作教程,有针对目前流行的IE6/IE7/IE8不同版本的CSS代码,因此可以在IE之间完全兼容,不过其它的浏览器像火狐/GG浏览器之类的没有测试,如果兼容IE8的话,那么 ...

  4. 用纯css实现下拉菜单的几种方式

    第一种:display:none和display:block切换 1 <!DOCTYPE html> 2 <html lang="en"> 3 <he ...

  5. 纯css导航下拉_纯CSS标签导航

    纯css导航下拉 The appearence of "tab" navigation is relatively easy to create, but making a tab ...

  6. html用css做下拉菜单,纯css实现下拉菜单

    纯css实现下拉菜单 1.效果如下: 2.html代码 时间最近 时间最近 评论最多 被赞最多 3.css代码 * { margin: 0; padding: 0; } ul { list-style ...

  7. 下拉菜单html菜鸟教程,Bootstrap 下拉菜单

    Bootstrap 下拉菜单(Dropdown)插件 Bootstrap 下拉菜单 这一章讲解了下拉菜单,但是没有涉及到交互部分,本章将具体讲解下拉菜单的交互.使用下拉菜单(Dropdown)插件,您 ...

  8. java月份下拉菜单_实现一个日期下拉菜单

    这篇文章的主旨是弄清楚如何根据实际需求实现一个联动菜单以及联动菜单的原理,实例是实现一个日期选择下拉菜单.本文调试环境为IE6/firefox1.5. 首先来分析一下日期下拉菜单的需求.建议大家在写任 ...

  9. html导航栏圆角,纯css实现蓝色圆角效果水平导航菜单代码

    纯css实现蓝色圆角效果水平导航菜单代码 这是一款可爱的蓝色圆角水平导航菜单,用到几张背景图片,我觉得这款菜单挺实用,特别是用在个人博客中非常合适.在兼容性方面做的'也很好,几乎兼容所有的浏览器. 运 ...

最新文章

  1. torch.nn.Embedding
  2. 聊聊那些令人惋惜的车模
  3. 查看Linux进程状态
  4. 超级数学计算机,超级计算器+
  5. python邮件图片加密_Python爬虫如何应对Cloudflare邮箱加密
  6. linux mysql root登录_linux下 root 登录 MySQL 报错的问题
  7. 用户控件(UserControl)
  8. ICCV2021—工业界中的神经网络视频传输超分算法
  9. 数据3分钟丨Apache Doris谴责DorisDB违背开源精神;HC2021下周召开;openGauss训练营第二期圆满落幕
  10. coreos安装php,window_win10系统运行wps无响应的解决方案,wps是我们在日常办公中经常会 - phpStudy...
  11. http get和post的区别
  12. 1950 - Computing Machinery and Intelligence(计算机器与智能,又译作:机器能思考么?)
  13. html-box-sizing
  14. windows微软商店打不开代码0x80131解决方法
  15. MD5文件加密和解密
  16. Leetcode1859:将句子排序
  17. MySql数据类型-读书笔记
  18. WebDAV之葫芦儿·派盘+Orgzly
  19. lte 中crs_LTE的CRS和DRS区别(转载自无线俱乐部公众号)
  20. Matlab缩进与空格

热门文章

  1. python turtle 画老鼠_通过Turtle库在Python中绘制一个鼠年福鼠
  2. 测试新员工到新公司如何快速上手工作
  3. Ae 效果快速参考:文本、时间
  4. 一加6怎么刷android p6,安卓手机好评棒出炉: 魅族P6P抢占第三, 第一是谁?
  5. Mac系统下查看和生成SSH Key
  6. 使用Python Turtle画一个小人发射爱心
  7. note3 android l,从192MB到3GB Android手机内存发展回顾
  8. php cros跨域处理,CORS跨域问题解决方案
  9. java try catch 用法
  10. kkFileView实现各种软件的在线预览