在CSS中,下拉菜单是一种常见的交互式设计元素,它允许用户通过点击一个选项来展开或收起一个子菜单。这种设计可以使得网页的导航更加直观和易于使用。
一、基本下拉菜单
当鼠标移动到指定元素上时,会出现下拉菜单。
<style> .dropdown { position: relative; display: inline-block; } .dropdown-content { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); padding: 12px 16px; z-index: 1; } .dropdown:hover .dropdown-content { display: block; } </style> <div class="dropdown"> <span>Mouse over me</span> <div class="dropdown-content"> <p>Hello World!</p> </div> </div>
例子解释:
HTML:
- 可以使用各种元素来打开下拉菜单内容,例如 <span> 或 <button> 元素,这些元素可以作为下拉菜单的触发器,当用户将鼠标悬停在它们上面时,会显示下拉菜单的内容;
- 为了创建下拉菜单的内容,可以使用容器元素(如 <div>)来包裹这些元素,并在其中添加任何需要显示的内容;
- 然后可以用另一个 <div> 元素来包围这些容器元素,以便正确定位下拉菜单的内容。
CSS:
- 首先定义一个名为 .dropdown 的类,它使用 position:relative 属性。当希望将下拉菜单的内容放置在下拉按钮的正下方时,可以使用该类,因为我们将在下文中使用 position:absolute 属性来定位下拉菜单的内容;
- 然后定义一个.dropdown-content 类保存实际的下拉菜单内容。默认情况下它是隐藏的,并将在悬停时显示(请看下文)。请注意,min-width 设置为 160px。可随时更改此设置。提示:如果您希望下拉内容的宽度与下拉按钮的宽度一样,请将宽度设置为 100%(设置 overflow:auto 可实现在小屏幕上滚动);
- 还使用了 CSS 的 box-shadow 属性来给下拉菜单添加阴影效果,而不是使用边框。这样做可以使下拉菜单看起来更加美观,给人一种“卡片”的感觉;
- 最后当用户将鼠标移到下拉按钮上时,使用 :hover 选择器来显示下拉菜单的内容,这样,当用户将鼠标悬停在下拉按钮上时,下拉菜单就会自动展开,并显示相应的选项供用户选择。
二、下拉菜单
创建一个下拉菜单,并允许用户从列表中选择其中的某一项。这个实例与之前的例子相似。当我们在下拉菜单中添加了链接,并为它们设置了样式后,用户可以通过点击这些链接来访问相应的网页或执行特定的操作:
<style> /* 容器 <div> - 需要定位下拉内容 */ .dropdown { position: relative; display: inline-block; } /* 下拉内容 (默认隐藏) */ .dropdown-content { display: none; position: absolute; } /* 下拉菜单的链接 */ .dropdown-content a { text-decoration: none; display: block; } /* 鼠标移上去后修改下拉菜单链接颜色 */ .dropdown-content a:hover {background-color: #f1f1f1} /* 在鼠标移上去后显示下拉菜单 */ .dropdown:hover .dropdown-content { display: block; } /* 当下拉内容显示后修改下拉按钮的背景颜色 */ .dropdown:hover .dropbtn { background-color: #3e8e41; } </style>
三、下拉内容对齐方式
- float:left;
- float:right;
实例:
.dropdown-content { right: 0; }
四、图片下拉
实例:
<style> .dropdown { position: relative; display: inline-block; } .dropdown-content { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); } .dropdown:hover .dropdown-content { display: block; } .desc { padding: 15px; text-align: center; } </style> </head> <body> <h2>下拉图片</h2> <p>数字化技能提升教程 、数字化时代生存宝典</p> <div class="dropdown"> <img src="//www.w3cschool.cn/statics/images/w3c/intro.png" alt="Trolltunga Norway" width="100" height="50"> <div class="dropdown-content"> <img src="//www.w3cschool.cn/statics/images/w3c/intro.png" alt="Trolltunga Norway" width="400" height="200"> <div class="desc">站长百科</div> </div> </div> </body>
五、导航条下拉
导航条下拉是指鼠标移动到 “下拉菜单” 链接先显示下拉菜单。
实例:
<style> ul { list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #333; } li { float: left; } li a, .dropbtn { display: inline-block; color: white; text-align: center; padding: 14px 16px; text-decoration: none; } li a:hover, .dropdown:hover .dropbtn { background-color: #111; } .dropdown { display: inline-block; } .dropdown-content { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); } .dropdown-content a { color: black; padding: 12px 16px; text-decoration: none; display: block; } .dropdown-content a:hover {background-color: #f1f1f1} .dropdown:hover .dropdown-content { display: block; } </style> </head> <body> <ul> <li><a class="active" href="#home" rel="external nofollow" >首页</a></li> <li><a href="#news" rel="external nofollow" >支持</a></li> <div class="dropdown"> <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="dropbtn">下拉菜单</a> <div class="dropdown-content"> <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >链接 1</a> <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >链接 2</a> <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >链接 3</a> </div> </div> </ul> <h3>导航栏上的下拉菜单</h3> <p>鼠标移动到 "下拉菜单" 链接先显示下拉菜单。</p> </body>