transform实现纯CSS弹出菜单

前言

在制作顶部菜单的时候,都会要求制作弹出的二级菜单,早先的做法是用jQuery的来控制二级菜单的显示和过渡动画,但利用CSS3中的transform属性后,这一切都变得异常简单

先上效果

制作方法

核心就是利用了transform的区域位移方法,在配合上li标签的hover伪类和动画延时,从而简单实现了子菜单的显示

<nav>

<ul>

<li>

<span>home</span>

<div>

<a href="">cms</a>

<a href="">crm</a>

</div>

</li>

<li>

<span>live</span>

<div>

<a href="">java</a>

<a href="">php</a>

</div>

</li>

<li>

<span>pictrue</span>

<div>

<a href="">mm</a>

<a href="">dd</a>

</div>

</li>

</ul>

</nav>

 *{

padding: 0;

margin: 0;

box-sizing: border-box;

}

body{

width: 100vw;

height: 100vh;

display: flex;

flex-direction: column;

justify-content: flex-start;

align-items: center;

}

nav{

margin: 10px;

}

nav ul {

list-style-type: none;

height: 32px;

display: flex;

}

nav ul li{

margin-right: 10px;

}

nav ul li span{

text-transform: uppercase;

background-color: #9b59b6;

color: white;

padding: 5px 30px;

line-height: 30px;

cursor: pointer;

}

nav ul li span+div{

display: flex;

flex-direction: column;

background-color: #3498db;

padding: 10px;

transform: translateY(-110%);

opacity: 0;

transition: .3s;

transform-origin: top;

}

nav ul li:hover div{

transform: translateY(0);

opacity: 1;

}

nav ul li span+div a{

color: white;

text-decoration: none;

text-transform: uppercase;

padding: 5px 0;

}

以上是 transform实现纯CSS弹出菜单 的全部内容, 来源链接: utcz.com/a/32831.html

回到顶部