这个是我搜的百度到的答案,用transition,对于display是不起作用的,所以我们可以用高度为0px进行控制还需要overflow:hidden一起用这样才可以正常显示,hover的话改成相应的高度。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<style>
*{padding:0px;margin:0px;}
ul{list-style:none; }
ul li a{
text-decoration: none;
color: #fff;background-color:#00f;font-weight:bold;
padding:0px 10px; height:40px;line-height: 40px;
display:block;
}
ul li{ float:left;
position:relative; }
ul li a:hover{
background-color:green;
}
ul li ul{
position:absolute;
overflow: hidden; // //用//已标出代码实现transition的关键
height:0px; //
transition:0.5s; //
}
ul li ul li{
float:none;
width:100px;
display: block;
}
ul li:hover ul{
transition-duration:0.5s; //
height:130px; //
}
</style>
</head>
<body>
<div>
<ul>
<li><a href="#">新闻中心</a></li>
<li><a href="#">师资队伍</a></li>
<li><a href="#">学院概况</a>
<ul>
<li><a href="#">数信学院</a>
</li>
<li><a href="#">计算机学院</a>
</li>
<li><a href="#">外国语学院</a>
</li>
</ul>
<li><a href="#">科学研究</a>
<ul>
<li><a href="#">数信学院</a>
</li>
<li><a href="#">计算机学院</a>
</li>
<li><a href="#">外国语学院</a>
</li>
</ul></li>
<li><a href="#">学生工作</a></li>
</ul>
</div>
</body>
</html>