HTML5与CSS3中鼠标悬停会有下拉列表

想来这个功能刚学的时候也是懵懵懂懂、糊里糊涂的,当时在网上也是没怎么找到有用的资料,知道被问题困住的痛苦,一晃半年就过去了,现在我就作为过来人给大家讲讲:

基本代码如下:

<div id="nav">
<nav class="container">
<ul>
	<li><a href="ddstore.php">首页</a></li><li>
		<a>书籍分类</a>
			<ul>
				<li>程序设计</li>
				<li>数据库</li>
			</ul>
	</li><li>
	<a href="specials.php">特刊降价</a></li><li>
	<a href="contact_form.php">联系我们</a></li><li>
	<a href="about.php">关于我们</a></li><li id="menu-logo">
	<a href="my_cart.php">购物车</a></li>
</ul>
</nav>
</div>
  • 简单来说就是列表的互相嵌套,表中有表。(这里得用无序列表!)

CSS3的代码示例如下:

.container{width:1000px;margin:0 auto;}
#nav nav ul li{position:relative;}
#nav nav ul ul li{background-color:#cc6600;}
#nav nav ul ul li a{border-left:1px solid black;border-right:1px solid black;border-bottom:1px solid black;}
#nav nav ul ul{visibility:hidden;position:absolute;left:-40.5px;}
#nav nav ul li:hover ul{visibility:visible;z-index:100;}
#nav nav{background-color:#cc6600;}
nav ul li{display:inline-block;}
nav ul a{display:inline-block;line-height:50px;width:90px;text-align:center;border-right:1px solid #834524;color:#ffffff;
text-decoration:none;font-size:1.6em;transition:background 0.5s linear;}
nav ul a:hover{background-color:#834524;}
  • 实现鼠标悬停下拉列表,CSS3的书写就有点麻烦了,也是最关键的实现步骤;
  • 首先对外层列表中的每一列设置为相对定位,即相对于其正常位置进行定位;在这里其它的都是修饰性的,像悬停背景缓慢变化、设置超链接左边界、各元素成块状分布等。
  • 我主要想说的是对表中表的一些必要修饰,其在正常状态下hidden,在鼠标悬停下visible,并将层级设置成100(比其它大就可以了),在绝对位置下可以移动到其父元素的正下方比较好看。

 效果示例如下:

 

  • 24
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值