纯html+css做的顶部四级菜单栏,伪类选择器和定位的高级用法

html内容

<ul class="one">
			<li><a href="#">一级菜单1</a>
				<ul class="two">
					<li><a href="#">二级菜单1</a>
						<ul class="three">
							<li><a href="#">三级菜单1</a>
								<ul class="four">
									<li><a href="#">四级菜单1</a></li>
									<li><a href="#">四级菜单2</a></li>
									<li><a href="#">四级菜单3</a></li>
								</ul>
							</li>
							<li><a href="#">三级菜单2</a></li>
							<li><a href="#">三级菜单3</a>
								<ul class="four">
									<li><a href="#">四级菜单1</a></li>
									<li><a href="#">四级菜单2</a></li>
									<li><a href="#">四级菜单3</a></li>
								</ul>
							</li>
						</ul>
					</li>
					<li><a href="#">二级菜单2</a>
						<ul class="three">
							<li><a href="#">三级菜单1</a></li>
							<li><a href="#">三级菜单2</a></li>
							<li><a href="#">三级菜单3</a></li>
						</ul>
					</li>
					<li><a href="#">二级菜单3</a>
						<ul class="three">
							<li><a href="#">三级菜单1</a></li>
							<li><a href="#">三级菜单2</a></li>
							<li><a href="#">三级菜单3</a></li>
						</ul>
					</li>
				</ul>
			</li>
			<li><a href="#">一级菜单2</a>
				<ul class="two">
					<li><a href="#">二级菜单1</a>
						<ul class="three">
							<li><a href="#">三级菜单1</a></li>
							<li><a href="#">三级菜单2</a></li>
							<li><a href="#">三级菜单3</a></li>
						</ul>
					</li>
					<li><a href="#">二级菜单2</a>
						<ul class="three">
							<li><a href="#">三级菜单1</a></li>
							<li><a href="#">三级菜单2</a></li>
							<li><a href="#">三级菜单3</a></li>
						</ul>
					</li>
					<li><a href="#">二级菜单3</a>
						<ul class="three">
							<li><a href="#">三级菜单1</a></li>
							<li><a href="#">三级菜单2</a></li>
							<li><a href="#">三级菜单3</a></li>
						</ul>
					</li>
				</ul>
			</li>
			<li><a href="#">一级菜单3</a>
				<ul class="two">
					<li><a href="#">二级菜单1</a>
						<ul class="three">
							<li><a href="#">三级菜单1</a></li>
							<li><a href="#">三级菜单2</a></li>
							<li><a href="#">三级菜单3</a></li>
						</ul>
					</li>
					<li><a href="#">二级菜单2</a>
						<ul class="three">
							<li><a href="#">三级菜单1</a></li>
							<li><a href="#">三级菜单2</a></li>
							<li><a href="#">三级菜单3</a></li>
						</ul>
					</li>
					<li><a href="#">二级菜单3</a>
						<ul class="three">
							<li><a href="#">三级菜单1</a></li>
							<li><a href="#">三级菜单2</a></li>
							<li><a href="#">三级菜单3</a></li>
						</ul>
					</li>
				</ul>
			</li>
		</ul>

css样式内容

<style>
			ul{
				list-style: none;	/*去掉列表头部样式*/
			}
			a{
				text-decoration: none;		/*去掉链接下划线*/
			}
			a:hover{
				color: red;		/*鼠标移上链接变红色*/
			}
			.one > li{
				display: inline-block;	/*一级菜单样式,设置相对定位,配合二级菜单的绝对定位*/
				background: white;
				border: 1px solid black;
				width: 120px;
				height: 30px;
				line-height: 30px;
				text-align: center;
				position: relative;
			}
			.two{
				display: none;		/*隐藏二级菜单,和设置绝对定位位置*/
				position: absolute;
				left: -41px;
				top: 32px;
			}
			.two > li{
				background: white;		/*同一次菜单样式*/
				border: 1px solid black;
				width: 120px;
				height: 30px;
				line-height: 30px;
				text-align: center;
				margin-top: 2px;
				position: relative;
			}
			.three{
				display: none;
				position: absolute;
				left: 85px;
				top: -3px;
			}
			.three > li{
				background: white;
				border: 1px solid black;
				width: 120px;
				height: 30px;
				line-height: 30px;
				text-align: center;
				margin-top: 2px;
				position: relative;
			}
			.four{
				display: none;
				position: absolute;
				left: 85px;
				top: -3px;
			}
			.four > li{
				background: white;
				border: 1px solid black;
				width: 120px;
				height: 30px;
				line-height: 30px;
				text-align: center;
				margin-top: 2px;
			}
			ul li:hover{	/*设置li的背景伪类*/
				background: wheat;
			}
			ul li:hover >ul{	/*伪类高级选择,显示li下面的ul列表*/
				display: inline-block;
			}
		</style>

运行截图
在这里插入图片描述
在这里插入图片描述
喜欢的朋友可以关注我,一起交流学习

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的HTML+CSS制作横向二级菜单栏的示例代码: HTML代码: ```html <nav> <ul> <li><a href="#">菜单1</a> <ul> <li><a href="#">子菜单1</a></li> <li><a href="#">子菜单2</a></li> <li><a href="#">子菜单3</a></li> </ul> </li> <li><a href="#">菜单2</a> <ul> <li><a href="#">子菜单1</a></li> <li><a href="#">子菜单2</a></li> <li><a href="#">子菜单3</a></li> </ul> </li> <li><a href="#">菜单3</a> <ul> <li><a href="#">子菜单1</a></li> <li><a href="#">子菜单2</a></li> <li><a href="#">子菜单3</a></li> </ul> </li> </ul> </nav> ``` CSS代码: ```css nav ul { list-style: none; padding: 0; margin: 0; } nav li { float: left; position: relative; } nav li a { display: block; padding: 10px; text-decoration: none; color: #333; } nav ul ul { position: absolute; top: 100%; left: 0; display: none; } nav ul li:hover > ul { display: inherit; } nav ul ul li { float: none; width: 100%; } nav ul ul a { padding: 5px 10px; display: block; } nav ul ul ul { top: 0; left: 100%; } nav ul li:hover > a { background-color: #f8f8f8; } nav ul ul li:hover > a { background-color: #f1f1f1; } nav a:focus { outline: none; } @media screen and (max-width: 768px) { nav ul li { float: none; } nav ul ul { position: static; display: none; } nav ul li:hover > ul { display: none; } nav ul ul li { display: block; width: 100%; } } ``` 在以上代码中,我们首先创建了一个 `nav` 元素,内含一个无序列表 `ul`,列表项 `li` 中包含了一个链接 `a` 和一个子菜单的无序列表 `ul`,子菜单列表项也是 `li`,链接也是 `a`,以此类推。 CSS 中,我们使用了 `float` 属性使菜单项横向排列,使用了 `position: absolute` 属性将子菜单定位在其父菜单下方,使用了 `display: none` 属性将子菜单默认隐藏,然后使用 `:hover` 伪类选择器来控制菜单项和子菜单的显示和隐藏。同时,我们还使用了媒体查询 `@media` 来控制菜单在小屏幕设备上的响应式布局。 希望这个示例代码能够帮到你,如果有疑问可以随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值