效果图:
在这个示例中,我为每个.second-list
添加了一个.sub-menu
的<div>
,它包含了子菜单项。当鼠标悬停在.second-list
上时,.sub-menu
会显示出来。你可以根据需要调整这个示例以适应你的具体需求。
记住,这只是一个基本的示例。在实际应用中,你可能还需要考虑更多的细节,比如动画效果、子菜单的定位、响应式设计等。
这里有一些可能的改进或考虑的点:
- 二级菜单的定位:你的代码中,二级菜单是位于其父元素(
.second-list
)的右侧,这是通过left: 100%;
来实现的。这适用于从左到右的菜单布局。但如果你需要考虑从右到左的布局(例如,在某些语言环境中),你可能需要调整这个定位。 - 二级菜单的样式:你可能希望为二级菜单添加一些阴影或边框,以使其看起来更像是从主菜单中“弹出”的。这可以通过添加
box-shadow
或调整边框样式来实现。 - 响应式设计:如果你的菜单需要在不同大小的屏幕上显示,你可能需要考虑添加一些响应式设计的元素。例如,当屏幕宽度变小时,你可能希望将二级菜单改为下拉菜单,而不是横向展开。
- 子菜单的动画效果:你可以考虑添加一些CSS过渡或动画效果,以使二级菜单的显示和隐藏更加平滑。例如,你可以使用
transition
属性来添加淡入淡出效果。 - 可访问性:确保你的菜单对所有人都是可访问的,包括那些使用屏幕阅读器或键盘导航的用户。你可能需要添加一些额外的样式或JavaScript来处理这些情况。
以下是一个简单的示例,演示如何为二级菜单添加淡入淡出效果:
css.sub-menu {
/* ...其他样式... */
opacity: 0;
visibility: hidden;
transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
}.second-list:hover .sub-menu {
display: block;
opacity: 1;
visibility: visible;
}
在这个示例中,当鼠标悬停在.second-list
上时,.sub-menu
将从透明(opacity: 0
)且不可见(visibility: hidden
)的状态渐变为完全不透明(opacity: 1
)且可见(visibility: visible
)的状态。transition
属性用于控制这个渐变过程的速度和方式。
完整代码:
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><style>* {margin: 0;padding: 0;}.con {width: 300px;height: 27.75rem;background-color: rgba(230, 246, 251, 0.9);border-radius: 14px;}ul {display: flex;flex-direction: column;height: 100%;}li {flex: 1;display: flex;align-items: center;border: 1px solid #eee;box-sizing: border-box;padding-left: 40px;position: relative;}li:first-child {border: none;}li:hover {background-color: rgb(221, 234, 240);}.second-list::after {content: ">";color: rgb(133, 151, 157);font-weight: 800;position: absolute;right: 40px;}.sub-menu {display: none;/* 默认隐藏二级菜单 */position: absolute;top: 0;left: 100%;/* 放置在父元素的右侧 */width: 150px;/* 设置二级菜单的宽度 */background-color: rgba(230, 246, 251, 0.9);border-radius: 0 14px 14px 0;/* 圆角只显示在右侧 */opacity: 0.2;visibility: hidden;transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;}.sub-menu ul li {height: 62px;line-height: 62px;}.second-list:hover .sub-menu {/* 鼠标悬停时显示二级菜单 */display: block;opacity: 1;visibility: visible;}</style></head><body><div class="con"><ul><li class="second-list">查看<div class="sub-menu"><ul><li>大图标</li><li>中图标</li><li>小图标</li></ul></div></li><li class="second-list">排序方式<div class="sub-menu"><ul><li>名称</li><li>大小</li><li>类型</li></ul></div></li><li>刷新</li><li class="second-list">新建<div class="sub-menu"><ul><li>文档</li><li>文件夹</li><li>工作表</li></ul></div></li><li>显示设置</li><li>个性化</li><li>属性</li></ul></div></body>
</html>