你值得拥有的CSS下拉菜单效果

所属分类: 网页制作 / CSS 阅读数: 1443
收藏 0 赞 0 分享

使用 CSS 可以创建一个鼠标移入后显示下拉菜单的效果。

1、下拉菜单的实现

当鼠标移入指定元素时,显示下拉菜单。代码如下:

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4.     <meta charset="UTF-8">  
  5.     <title>简单的下拉菜单</title>  
  6. <style>  
  7. .dropdown{   
  8.     position:relative;   
  9.     display:inline-block;   
  10. }   
  11.   
  12. .dropdown-content{   
  13.     min-width:200px;   
  14.     border:1px solid black;   
  15.     position:absolute;   
  16.     display:none;   
  17. }   
  18.   
  19. .dropdown:hover .dropdown-content{   
  20.     display:block;   
  21. }   
  22. </style>  
  23. </head>  
  24. <body>  
  25. <div class="dropdown">  
  26.     <span>鼠标你过来,我为你展示下拉菜单。</span>  
  27.     <div class="dropdown-content">  
  28.         <p>下拉菜单 1</p>  
  29.         <p>下拉菜单 2</p>  
  30.     </div>  
  31. </div>  
  32. </body>  
  33. </html>  

实例解析:

  HTML 部分:

    可以使用任何 HTML 元素来打开下拉菜单,比如 <span>,或 <a>、<button> 等元素。

    然后,使用 <div> 元素来创建一个容器,用于包含下拉菜单的内容,并自定义他需要出现的位置。

    最后,再使用 <div> 元素来包裹这些元素,并使用 CSS 来设置下拉内容的样式。

  CSS 部分:

    .dropdown 类使用 position:relative,这将设置下拉菜单的内容放置在下拉按钮(使用 position:absolute)的右下角位置。

    .dropdown-content 类中是实际的下拉菜单。默认是隐藏的,在鼠标移入指定元素后显示。

    注意:在上面的例子中,下拉菜单容器的宽度设置为最小 200px,根据实际情况可以自行定义。

    如果希望下拉菜单与下拉按钮的宽度一致,可将宽度设置为 100%,overflow:auto 属性可以指定在小尺寸屏幕上滚动。

    :hover 选择器用于在用户将鼠标移动到下拉按钮上时显示下拉菜单,将下拉菜单容器设置为 display:block;

2、创建下拉菜单

  在上面例子的基础上,创建一个下拉菜单,并允许用户选取列表中的某一项目。

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4.     <meta charset="UTF-8">  
  5.     <title>下拉菜单实例</title>  
  6. <style>  
  7. /* 容器 <div> - 需要定位下拉内容 */   
  8. .dropdown{   
  9.     position:relative;   
  10.     display:inline-block;   
  11. }   
  12.   
  13. /* 下拉菜单内容,设置为隐藏 */   
  14. .dropdown-content{   
  15.     min-width:150px;   
  16.     background-color:#F5F5F5;   
  17.     position:absolute;   
  18.     display:none;   
  19.     box-shadow:0px 8px 15px 0px rgba(0,0,0,0.2);   
  20. }   
  21.   
  22. /* 下拉按钮样式 */   
  23. .dropbtn{   
  24.     color:white;   
  25.     font-size:16px;   
  26.     padding:15px;   
  27.     border:none;   
  28.     background-color:#00CD66;   
  29.     cursor:pointer;   
  30. }   
  31.   
  32. /* 下拉菜单链接的样式 */   
  33. .dropdown-content a{   
  34.     color:black;   
  35.     text-decoration:none;   
  36.     padding:12px 15px;   
  37.     display:block;   
  38. }   
  39.   
  40. /* 鼠标移入后显示下拉菜单 */   
  41. .dropdown:hover .dropdown-content{   
  42.     display:block;   
  43. }   
  44.   
  45. /* 鼠标移入后修改链接的背景色 */   
  46. .dropdown-content a:hover{   
  47.     background-color:#E8E8E8;   
  48. }   
  49.   
  50. /* 下拉菜单显示后修改下拉按钮的背景色 */   
  51. .dropdown:hover .dropbtn{   
  52.     background-color:#008B00;   
  53. }   
  54. </style>  
  55. </head>  
  56. <body>  
  57. <div class="dropdown">  
  58.     <button type="button" class="dropbtn">下拉菜单按钮</button>  
  59.     <div class="dropdown-content">  
  60.         <a href="#">下拉菜单项 1</a>  
  61.         <a href="#">下拉菜单项 2</a>  
  62.         <a href="#">下拉菜单项 3</a>  
  63.     </div>  
  64. </div>  
  65. </body>  
  66. </html>  


  在 Chrome 中当鼠标移入下拉菜单按钮时显示如下:

  在上面的例子中,下拉菜单的内容设置了 box-shadow 属性,这个属性主要用于添加阴影,这样下拉菜单看起来就像一个“卡片”一样。该属性指定下拉菜单在水平方向阴影为 0,垂直方向为 8 像素的阴影,模糊距离为 15 像素,阴影的尺寸为 0,并指定阴影的颜色为黑色,且透明度为 0.2。

  下拉菜单按钮使用了 cursor 属性,该属性主要用于指定鼠标光标的类型,即鼠标指针放在一个元素边界范围内时所用的光标形状。

  下表列出了该属性所有的值: 鼠标可移入对应的属性值,查看光标的形状。

3、下拉菜单的对齐方式

  如果下拉菜单设置了 float:left 样式,那么还需要设置 left:0,即从 left:0 处开始从左向右显示菜单内容,否则会超出浏览器左边窗口。

  如果下拉菜单设置了 float:right 样式,默认都是从左向右显示,菜单内容则会超出浏览器右边窗口,所以还需要设置 right:0,让下拉菜单内容从右向左。

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4.     <meta charset="UTF-8">  
  5.     <title>下拉菜单对齐</title>  
  6. <style>  
  7. /* 容器 <div> - 需要定位下拉内容 */   
  8. .dropdown{   
  9.     position:relative;   
  10.     display:inline-block;   
  11. }   
  12.   
  13. /* 下拉菜单内容,设置为隐藏 */   
  14. .dropdown-content{   
  15.     min-width:150px;   
  16.     background-color:#F5F5F5;   
  17.     position:absolute;   
  18.     right:0;   
  19.     display:none;   
  20.     box-shadow:0px 8px 15px 0px rgba(0,0,0,0.2);   
  21. }   
  22.   
  23. /* 下拉按钮样式 */   
  24. .dropbtn{   
  25.     color:white;   
  26.     font-size:16px;   
  27.     padding:15px;   
  28.     border:none;   
  29.     background-color:#00CD66;   
  30.     cursor:pointer;   
  31. }   
  32.   
  33. /* 下拉菜单链接的样式 */   
  34. .dropdown-content a{   
  35.     color:black;   
  36.     text-decoration:none;   
  37.     padding:12px 15px;   
  38.     display:block;   
  39. }   
  40.   
  41. /* 鼠标移入后显示下拉菜单 */   
  42. .dropdown:hover .dropdown-content{   
  43.     display:block;   
  44. }   
  45.   
  46. /* 鼠标移入后修改链接的背景色 */   
  47. .dropdown-content a:hover{   
  48.     background-color:#E8E8E8;   
  49. }   
  50.   
  51. /* 下拉菜单显示后修改下拉按钮的背景色 */   
  52. .dropdown:hover .dropbtn{   
  53.     background-color:#008B00;   
  54. }   
  55. </style>  
  56. </head>  
  57. <body>  
  58. <div class="dropdown" style="float:left;">  
  59.     <button type="button" class="dropbtn"></button>  
  60.     <div class="dropdown-content" style="left:0;">  
  61.         <a href="#">下拉菜单项 1</a>  
  62.         <a href="#">下拉菜单项 2</a>  
  63.         <a href="#">下拉菜单项 3</a>  
  64.     </div>  
  65. </div>  
  66.   
  67. <div class="dropdown" style="float:right;">  
  68.     <button type="button" class="dropbtn"></button>  
  69.     <div class="dropdown-content">  
  70.         <a href="#">下拉菜单项 1</a>  
  71.         <a href="#">下拉菜单项 2</a>  
  72.         <a href="#">下拉菜单项 3</a>  
  73.     </div>  
  74. </div>  
  75. </body>  
  76. </html>  
  77.   

  在 Chrome 中当鼠标移入右下拉按钮时显示如下:

以上就是本文的全部内容,希望对大家的学习有所帮助。

原文:http://www.cnblogs.com/Mtime/p/5265793.html

更多精彩内容其他人还在看

Opera中国的WEB标准课程

网页制作Webjx文章简介:在这篇文章里,我要向大家介绍我和其他很多人花费数月时间开发的一个课程——Web标准课程,该课程旨在向大家提供Web设计和开发的坚实基础,无论读者是谁,此教程完全免费、可访问,并且不需要预备知识。当然,我主要还
收藏 0 赞 0 分享

CSS样式表渐进增强的基本概念

网页制作Webjx文章简介:如果你挠着头想弄清楚优雅降级和渐进增强的区别,我告诉你,这是视角问题。优雅降级和渐进增强都考虑网站在各种设备的各种浏览器上如何良好运转。两者区别的关键在于它们各自关注的焦点,以及这种关注对工作流程的影响
收藏 0 赞 0 分享

简单介绍Web Developer插件制作网页

网页制作Webjx文章简介:Firefox浏览器是一个良好支持W3C标准的开放源代码的浏览器,拥有Linux/Windows/Mac版本。因为Firefox浏览器良好支持W3C标准,所以使用Firefox来调试网页是非常好的。 Firefox浏览器是
收藏 0 赞 0 分享

CSS布局带来的巨大影响:CSS display属性值

网页制作Webjx文章简介:网页元素应用上那些与表格相关的display属性值后,能够模仿出与表格相同的特性。我将会在该文中给大家演示这种方法给CSS布局带来的巨大影响。 应原书编辑要求,先在文章顶部给出链接:《Everything You
收藏 0 赞 0 分享

用div css模拟表格对角线

这只是探讨一种CSS模拟表格对角线的用法,实际在工作中可能觉得这样做有点小题大作,这不是本主题讨论的重点。如果对此深以为然的朋友,请一笑过之 首先声明: 这只是探讨一种CSS模拟表格对角线的
收藏 0 赞 0 分享

IE Firefox在css中的差别 (部分)

1、单位问题 问题:任何距离的数值ie可以不加单位,ff必须要求写单位(0除外) 解决:写全单位如padding:0px; 2、水平居中 问题:div里的内容,ie默认为center,而ff默认left 解决:mairgin:0px auto; 3、高度问题
收藏 0 赞 0 分享

不用js可以实现信息提示效果

[code] <style> body { font:verdena; font-size:14px; color:#000 } h1{ font:verdena; font-size:22px; color:#000 } h2{ font:verdena;
收藏 0 赞 0 分享

CSS解决未知高度的垂直水平居中自适应问题

今天有人问起,晚上试着写出来,供参考; 以下代码兼容主流浏览器IE6、IE7、Firefox、Opera。 从最简单的开始………… 一、如何让一个DIV水平居中? 这个简单不作过多说明! [code] <st
收藏 0 赞 0 分享

CSS cursor 属性 -- 鼠标指针样式效果

取值: [ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize |
收藏 0 赞 0 分享

css 简单区别ie6,ie7,firefox的写法

同一样式里可以这样 [code] margin:17px; FF +margin:17px; IE6 IE7 _margin:17px; IE6 [/code] 按这个顺序,刚好区分开三个浏览器
收藏 0 赞 0 分享
查看更多