首页 > 其他分享 >CSS禅意花园(3)-利用CSS实现下拉菜单

CSS禅意花园(3)-利用CSS实现下拉菜单

时间:2023-06-09 11:02:42浏览次数:44  
标签:禅意 hover ul menu item 下拉菜单 CSS

版权声明:可以任意转载,但转载时必须标明原作者charlee、

许多网站都使用了下拉菜单效果,但大部分都是用Javascript实现的。自己写过下拉菜单的人应该知道,处理onmouseover和onmouseout事件极其繁琐。而实际上,仅使用CSS的:hover伪类就能简洁地实现下拉菜单效果。


不过遗憾的是只有完全支持:hover伪类的浏览器如Firefox才能实现这种效果。像IE这种仅能部分支持:hover的浏览器就只能老老实实地用Javascript来做了。


请看下面的代码。

<html>    <head>      <style>      </style>    </head>    <body>      <div id="menu">        <h3>Select from menu</h3>        <ul>          <li>menu item 1</li>          <li>menu item 2</li>          <li>menu item 3</li>          <li>menu item 4</li>          <li>menu item 5</li>        </ul>      </div>  </html>


我们尚未定义样式表,这个页面显示结果就是一个简单的列表。



为了实现下拉菜单,我们先将<ul>元素隐藏起来:


#menu ul { display: none; }

然后应当让菜单在鼠标经过时显示,所以应当为<div>的:hover伪类添加如下定义:


#menu:hover ul { display: block; }

OK,这样一个简单的下拉菜单就做好了。最后的代码如下(对菜单样式作了些修饰):

<html>    <head>      <style>        #menu {          font-size: 0.8em;          width: 150px;          cursor: pointer;        }        #menu ul {          border: solid 3px #F44;          background-color: #FCC;          display: none;        }          #menu:hover ul {          padding: 5px;          display: block;          list-style-type: none;        }          #menu ul li:hover {          text-decoration: underline;        }      </style>    </head>    <body>      <div id="menu">        <h3>Select from menu</h3>        <ul>          <li>menu item 1</li>          <li>menu item 2</li>          <li>menu item 3</li>          <li>menu item 4</li>          <li>menu item 5</li>        </ul>      </div>  </html>


实现的效果如下所示:



在CSS Zen Garden的一个设计《Tulipe》中应用了这种方法来制作下拉菜单,有兴趣的可以参考。



标签:禅意,hover,ul,menu,item,下拉菜单,CSS
From: https://blog.51cto.com/u_16065168/6445910

相关文章

  • CSS 图片加载提前占位 padding-top、padding-bottom
    今天聊一个图片加载提前占位的一个问题......
  • CSS实现简单动态渐变闪烁效果
    CSS练习用例:.event{border-radius:4px;-webkit-border-radius:4px;color:#FFFFFF;font-size:12px;margin:0px30px;padding:2px0px;}.event.received{background-color:#4B946A;display:none;}@keyframe......
  • .CSS.MAP文件作用
    .CSS.MAP文件作用https://blog.csdn.net/qq_36441169/article/details/1025755631、简介在写前端代码,使用bootstrap时,发现同一个目录下,不仅仅有.css文件的同时,还存在.css.map文件的存在。在前端页面调试时也发现,映入很多已.less结尾的文件。将bootstrap-theme.min.css.map文件......
  • Vue进阶(幺幺捌):CSS3 - 选择器first-child、last-child、nth-child、nth-last-child、nt
    (文章目录)1.first-child(IE7兼容)、last-child(IE8不兼容)html:<body><h2>列表</h2><ul><li>列表项目1</li><li>列表项目2</li><li>列表项目3</li><li>列表项目4</li></ul></body&g......
  • Webpack 插件实现 CSS 样式尺寸单位转换
    Webpack插件实现CSS样式尺寸单位转换实现方式一插件代码以下是编写的一个Webpack插件,用于将样式文件中以rpx为单位的值转换为以px为单位的值(换算比率为1px=2rpx):constpluginName="CssSzieConvertPlugin";classCssSzieConvertPlugin{apply(compiler){......
  • 时隔一年,重用了一下HTML和CSS
    HTML列表无序列表 ul-li有序列表ol-li表格border指边框,cellspacing指表格元素之间的空隙,为0,则两两边框合二为一<tralign="center">指这行居中 table是表格tr指第一行,th指表头元素(第一行的各个列元素)后面tr依旧,td指此行内的每一列元素 表单元素 actio......
  • 明明加载好了css,js文件,页面的样式还是不对的解决办法
    页面内容的格式乱七八糟的…用F12开发人员工具检查了一下,没有发现任何问题最后,求助了bobby老师答曰:你缺乏前端知识,浏览器中有缓存,ctrl+f5强制刷新一下就好了恩,好了…......
  • uniapp主题切换功能的第一种实现方式(scss变量+vuex)
    随着用户端体验的不断提升,很多应用在上线的时候都要求做不同的主题,最基本的就是白天与夜间主题。就像b站app主题切换,像这样的uniapp因为能轻松实现多端发布而得到很多开发者的青睐,但每个端的实现也有可能不同,现我把已实现的功能一点点的大家分享给大家,须要的可以参考一下,可......
  • 26) minify-maven-plugin 合并压缩 js css文件
     http://samaxes.github.io/minify-maven-plugin/minify-mojo.html <build><plugins><plugin><groupId>com.samaxes.maven</groupId><artifactId>minify-maven-plugin</artifactId><version&g......
  • 27) yuicompressor-maven-plugin 合并压缩 js css文件
    http://davidb.github.io/yuicompressor-maven-plugin/compress-mojo.html<plugin><groupId>net.alchim31.maven</groupId><artifactId>yuicompressor-maven-plugin</artifactId><version>1.5.1</......