CSS 下拉菜单
.list1 li {list-style-type:none;}
.list1 li + li a {border-top:1px solid #f00;} /*选择除了第一个元素之外的元素,在li 后面的li*/
.list1 a {display:block; padding:3px 10px;}
所以把所有的border,padding,margin元素都设置在a元素里面。如果加给li,那么这些Padding所在位置就是不能点击的。
把所有的a元素都设置为display:block;从而使可以点击的面积扩大。
就是说不再是Inline而是填满盒子的。链接的可点击区域将扩大到整个列表行
为列表容器 nav 添加了 multi_drop_menu 类。
这个菜单的每一条 CSS规则都以.multi_drop_menu 开头,以确保它们只会应用给带有这个类的容器
浮动会让元素从垂直变成水平 .为方便设定菜单样式,
<html>
<head>
<style type="text/css">
.multi_drop_menu {font:1em helvetica, arial, sans-serif;}
.multi_drop_menu a {
display:block;/*让链接充满列表项*/
color:#555;
background-color:#eee;
padding:.2em 1em;
border-width:3px;
border-color:transparent;
}
.multi_drop_menu a:hover {/*鼠标悬停改变字和背景颜色*/
color:#fff;
background-color:#aaa;
}
.multi_drop_menu a:active {/*鼠标点击改变字的颜色*/
background:#fff;
color:#ccc;
}
.multi_drop_menu * {margin:0; padding:0;}/*所有元素取消默认的margin 和padding*/
.multi_drop_menu ul {float:left;}/*强制所有ul 包围所有li*/
.multi_drop_menu li {
float:left;/*水平排列菜单项*/
list-style-type:none;
position:relative;/*为子菜单提供定位上下文*/
}
.multi_drop_menu li a {
display:block;
border-right-style:solid;/*给每个链接添加一个右边框*/
background-clip:padding-box;/*背景只出现在padding区域后面,不出现在border后面*/
text-decoration:none;/*去a下划线*/
}
.multi_drop_menu li:last-child a {border-right-style:none;}/*最后一个子元素不加边框*/
/*现在开始是2,3级*/
.multi_drop_menu li ul {width:9em;}/*2,3级菜单宽度值设定*/
.multi_drop_menu li ul {display:none;}/*隐藏2,3级菜单*/
.multi_drop_menu li ul {
position:absolute;
left:0;
top:100%;
}
.multi_drop_menu li li a {
border-right-style:none;/*因为是竖排,所以要去掉之前设定的li a 的右边框*/
border-top-style:solid;/*添加上边框*/
}
.multi_drop_menu li li {
float:none;/*2级菜单不是横向显示的,所以要去掉继承的横向显示*/
}
.multi_drop_menu li li ul {
display:none;/*3级菜单隐藏*/
}/*可有可无*/
.multi_drop_menu li li ul {
position:absolute;/*3级菜单的ul相对于父元素绝对定位*/
left:100%;/*显示在右边*/
top:0;
}
.multi_drop_menu li:hover > ul {
display:block;
}
</style>
</head>
<body>
<nav class="multi_drop_menu">
<!-- 一级开始 -->
<ul>
<li><a href="#">Power</a></li>
<li><a href="#">Money</a></li>
<li><a href="#">Love</a></li>
<li><a href="#">Fame</a>
<!-- 二级开始 -->
<ul>
<li><a href="#">Sports Star</a></li>
<li><a href="#">Movie Star</a></li>
<li><a href="#">Rock Star</a>
<!-- 三级开始 -->
<ul>
<li><a href="#">Bruce Springsteen</a></li>
<li><a href="#">Bono</a></li>
<li><a href="#">Mick Jagger</a></li>
<li><a href="#">Bob Dylan</a></li>
</ul>
<!-- 三级结束 -->
</li>
<li><a href="#">Web Designer</a></li>
</ul>
<!-- 二级结束 -->
</li>
</ul>
<!-- 一级结束 -->
</nav>
</body>
</html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)