使用 CSS 创建可悬停的下拉列表。
1. 基础的下拉菜单
创建当用户将鼠标移到元素上时出现的下拉框。
代码如下:
<!DOCTYPE html>
<html>
<head>
<style>
.dropdown {position: relative;display: inline-block;
}.dropdown-content {display: none;position: absolute;background-color: #f1f1f1;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>
</head>
<body>
<div class="dropdown"><span>把鼠标移到我上面</span><div class="dropdown-content"><p>Hello World!</p></div>
</div></body>
</html>
运行结果如下:
把鼠标移到文字上面,效果如下:
例子解释:
HTML
使用任何元素打开下拉菜单内容,例如 <span>
或 <button>
元素。
使用容器元素(如 <div>
)创建下拉内容,并在其中添加任何内容。
用 <div>
元素包围这些元素,使用 CSS 正确定位下拉内容。
CSS
.dropdown 类使用 position:relative
,当我们希望将下拉内容放置在下拉按钮的正下方(使用 position:absolute
)时,需要使用该类。
.dropdown-content
类保存实际的下拉菜单内容。默认情况下它是隐藏的,并将在悬停时显示(请看下文)。请注意,min-width
设置为 160px。可随时更改此设置。提示:如果您希望下拉内容的宽度与下拉按钮的宽度一样,请将宽度设置为 100%(设置 overflow:auto
可实现在小屏幕上滚动)。
我们用了 CSS box-shadow
属性,而不是边框,这样下拉菜单看起来像一张“卡片”。
当用户将鼠标移到下拉按钮上时,:hover
选择器用于显示下拉菜单。
2.下拉式菜单
创建一个下拉菜单,并允许用户从列表中选择一个选项:
代码如下:
<!DOCTYPE html>
<html>
<head>
<style>
.dropbtn {background-color: #4CAF50;color: white;padding: 16px;font-size: 16px;border: none;cursor: pointer;
}.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);z-index: 1;
}.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;
}.dropdown:hover .dropbtn {background-color: #3e8e41;
}
</style>
</head>
<body><p>请把鼠标移到按钮上,以打开下拉菜单。</p><div class="dropdown"><button class="dropbtn">Dropdown</button><div class="dropdown-content"><a href="#">Link 1</a><a href="#">Link 2</a><a href="#">Link 3</a></div>
</div></body>
</html>
运行结果如下:
把鼠标移到按钮上,效果如下:
例子解释:
HTML
使用`元素打开下拉菜单内容。
使用容器元素 <div>
创建下拉内容,并在其中添加任何内容。
用 <div>
元素包围这些元素,使用 CSS 正确定位下拉内容。
CSS
.dropdown 类使用 position:relative
,当我们希望将下拉内容放置在下拉按钮的正下方(使用 position:absolute
)时,需要使用该类。
.dropdown-content
类保存实际的下拉菜单内容。默认情况下它是隐藏的,并将在悬停时显示(请看下文)。请注意,min-width
设置为 160px。可随时更改此设置。提示:如果您希望下拉内容的宽度与下拉按钮的宽度一样,请将宽度设置为 100%(设置 overflow:auto
可实现在小屏幕上滚动)。
我们用了 CSS box-shadow
属性,而不是边框,这样下拉菜单看起来像一张“卡片”。
当用户将鼠标移到下拉按钮上时,:hover
选择器用于显示下拉菜单。.dropdown-content a:hover {background-color: #f1f1f1}
用于点鼠标点击时显示背景颜色。
z-index: 1;
用于让下拉框的这个层在按钮层的上面。
3. 右对齐的下拉菜单内容
在上例代码新增如下代码:
.dropdown-content {right: 0;
}
效果如下:
注意:如果希望下拉菜单从从左到右而不是右到左,请添加 left: 0;
- 下拉式图像
当鼠标轻触图片时,图片放大
代码如下:
<!DOCTYPE html>
<html>
<head>
<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);z-index: 1;
}.dropdown:hover .dropdown-content {display: block;
}.desc {padding: 15px;text-align: center;
}
</style>
</head>
<body><p>请把鼠标移动到图像上,以打开下拉内容。</p><div class="dropdown"><img src="img/test.jpg" alt="back" width="100"><div class="dropdown-content"><img src="img/test.jpg" alt="back" width="300" height="300"><div class="desc">背影</div></div>
</div></body>
</html>
结果如下:
把鼠标移到图片上,效果如下: