码迷,mamicode.com
首页 > Web开发 > 详细

你能用CSS为导航添加的效果

时间:2019-10-17 18:04:11      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:other   :hover   动态   ops   pos   menu   oat   tar   repeat   

这篇博将分享几种纯 css 写的网页导航效果,但在正文开始之前,想跪谢腾讯开发【QQ for Mac 5.3.0或更高版本】自带的 ?? 录屏功能 ?? 向大佬低头 ????

command + control + R 快捷录屏,保存为 gif 格式。酱紫一来就能更完美的展现页面效果噜~ ( ?? .? ?? )?

以下所有效果源码都可以到 这里 下载

1.导航 二级菜单翻转效果

技术图片

结构创建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<header>
<nav>
<ul>
<li><img src="img/G222291335.png" alt="logo"/></li>
<li><a href="#">首页</a></li>
<li><a href="#">动态</a></li>
<li class="other_choice">
<a href="#">其他</a>
<ol class="second_menu">
<li><a href="#">其他</a></li>
<li><a href="#">其他</a></li>
<li><a href="#">其他</a></li>
</ol>
</li>
</ul>
</nav>
</header>

样式部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
header{
height: 44px;
background: linear-gradient(#838DA7,#576070);
}
header ul>li{
float: left;
}
header ul li a {
line-height: 44px;
}
header li{
padding: 0 25px;
}
header ul>li:first-child{
margin-left: 220px;
padding: 0;
box-shadow: 0 0 5px 5px rgba(255,255,255,.2);
}
header li:hover a,.second_menu li>a{
color:#fff;
}
.other_choice{
position: relative;
}
.second_menu{
width: 100%;
position: absolute;
left: 0;
visibility: hidden;
}
.second_menu li{
width: 100%;
text-align: center;
box-sizing: border-box;
background-color: #8E816F;
border-bottom: 1px solid #D6D6D8;
transform: rotateY(180deg);
transition: all linear 400ms;
}
.other_choice:hover .second_menu{
visibility: visible;
}
.other_choice:hover .second_menu>li{
transform: skew(180deg);
}
.second_menu>li:nth-child(3){
transition-delay:0ms;
}
.second_menu>li:nth-child(2){
transition-delay:300ms;
}
.second_menu>li:nth-child(1){
transition-delay:600ms;
}
/*一级菜单最后一项 移入后 二级菜单选项*/
.other_choice:hover .second_menu li:first-child{
transition-delay: 0s;
}
.other_choice:hover .second_menu li:nth-child(2){
transition-delay: 300ms;
}
.other_choice:hover .second_menu li:nth-child(3){
transition-delay: 600ms;
}

实现这个效果的关键点在于第37行及以后的代码,将二级菜单通过 transform rotate Y轴翻转,再移入翻转回正面。配合延时,是不是棒棒哒 ?( ? )?

2.导航 延展线效果

技术图片

结构创建

1
2
3
4
5
6
7
8
9
<header>
<nav>
<ul>
<li><a href="#">first</a></li>
<li><a href="#">second</a></li>
<li><a href="#">third</a></li>
</ul>
</nav>
</header>

样式部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
header ul{
overflow: hidden;
padding-bottom: 3px;
background: linear-gradient(#838DA7,#576070);
}
header li{
padding-bottom: 5px;
float: left;
margin-left: 100px;
position: relative;
}
header li a{
font-size: 30px;
}
header li:hover a{
color: #fff;
}
header li:before{
content:"";
width: 0;
border-bottom: 5px solid rgba(255,255,255,.2);
position: absolute;
left: 50%;
bottom: 0;
transition: all linear .5s;
}
header li:hover:before{
width: 100%;
left: 0;
}

实现这个效果的关键点在于利用伪元素从0到100%的宽度以及位置的变化做出效果

3.导航 延展线效果2

技术图片

结构创建

1
2
3
4
<ul class="nav3">
<li><a href="#">first</a></li>
<li><a href="#">second</a></li>
</ul>

样式部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
.nav3{
width: 300px;
margin: auto;
}
.nav3 li{
float: left;
width: 120px;
height: 40px;
transform: skew(-20deg);
background: linear-gradient(#838DA7,#576070);
margin-left: 20px;
}
.nav3 li a{
color: #fff;
display: block;
line-height: 40px;
text-align: center;
transform: skew(20deg);
}
.nav3 li:first-child:before{
content: "";
width:0;
height: 0;
border-top: 4px solid #576070;
position: absolute;
bottom: 0;
left: -160px;
}
.nav3 li:first-child:hover:before{
width: 80%;
left: 0;
transition: all linear 300ms;
}
.nav3 li:last-child:before{
content: "";
width: 0;
height: 0;
border-top: 4px solid #838DA7;
position: absolute;
top: 0;
left: 279px;
}
.nav3 li:last-child:hover:before{
width: 80%;
left:10%;
transition: all linear 300ms;
}

对此我并不想说啥 ?( ? )?

4.导航 震动效果

技术图片

结构创建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<div class="movie_show">
<ul>
<li>
<a href="#"><img src="img/movie_pic15.png" alt="银河护卫队2"/></a>
<h2>《银河护卫队2》</h2>
<time>2017.5.5</time>
</li>
<li>
<time>2008.8.20</time>
<h2>《无敌浩克》</h2>
<a href="#"><img src="img/movie_pic02.png" alt="浩克"/></a>
</li>
<li>
<a href="#"><img src="img/movie_pic03.png" alt="钢铁侠2"/></a>
<h2>《钢铁侠2》</h2>
<time>2010.4.25</time>
</li>
<li>
<time>2011.5.2</time>
<h2>《奇异博士》</h2>
<a href="#"><img src="img/movie_pic14.png" alt="奇异博士"/></a>
</li>
<li>
<a href="#"><img src="img/movie_pic05.png" alt="美队"/></a>
<h2>《美国队长》</h2>
<time>2011.7.19</time>
</li>
<li>
<time>2018.11.2</time>
<h2>《惊奇队长》</h2>
<a href="#"><img src="img/movie_pic19.png" alt="惊奇队长"/></a>
</li>
</ul>
</div>

样式部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.movie_show{
width: 100%;
height: 500px;
background: url("img/movie_bj.jpg") center;
}
.movie_show ul{
width: 1020px;
height: 450px;
overflow: hidden;
margin: auto;
text-align: center;
display: flex;
}
.movie_show ul li{
height: 244px;
cursor: pointer;
flex-grow: 1;
font-size: 0;
color: #ffffff;
text-align: center;
}
.movie_show li:hover{
color: #f32c1e;
}
.movie_show ul li:nth-child(even){
align-self:flex-end;
}
.movie_show li>h2,.movie_show li>time {
font-size: 18px;
}
.movie_show li time{
width: 118px;
height: 40px;
line-height: 40px;
text-align: center;
display: block;
}
.movie_show li:hover time{
background:url("img/icon.png") 0 -312px;
}
.movie_show ul li:nth-child(odd) time{
margin: 32px auto 0;
}
.movie_show ul li:nth-child(even) time{
margin: 0 auto 26px;
}
.movie_show li:hover time{
background:url("img/icon.png") 0 -312px;
}
.movie_show li a{
display: block;
}
.movie_show li:nth-child(1)>a{
background:url("img/movie_pic15.png") no-repeat center;
}
.movie_show li:nth-child(2)>a{
background:url("img/movie_pic02.png") no-repeat center;
}
.movie_show li:nth-child(3)>a{
background:url("img/movie_pic03.png") no-repeat center;
}
.movie_show li:nth-child(4)>a{
background:url("img/movie_pic14.png") no-repeat center;
}
.movie_show li:nth-child(5)>a{
background:url("img/movie_pic05.png") no-repeat center;
}
.movie_show li:nth-child(6)>a{
background:url("img/movie_pic19.png") no-repeat center;
}
.movie_show li:hover img{
opacity: 0;
transform: scale(1.5);
transition: all 1s linear;
}

这个效果的关键点在于将同一个图片作为 img 和 bg-img 重叠,在移入后将 img 通过 transform 放大 Σ( ???) 居然还有这种操作

至于这样 “W” 形的排版,opsition 可以做,但在这个例子中我使用了弹性盒模型 flex 也是棒棒哒 (????????)??????

你能用CSS为导航添加的效果

标签:other   :hover   动态   ops   pos   menu   oat   tar   repeat   

原文地址:https://www.cnblogs.com/sanxiandoupi/p/11693104.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!