css3导航

css3导航
勤奋(懒惰)的我又更新了,又是css(js比较难写,css随便糊弄过去就行了),周日过得好快,感觉一觉就睡过去了,天冷得不想起床(‾▽‾)”。

css3导航

其实css3的特效导航有很多很多种,我只是列了一些给大家参考参考,在曲面阴影里面我就说过:after和:before,其实大多说导航的特效都是依赖于这两兄弟完成的(其他标签也行,不过结构就太复杂了,不推荐),这两兄弟写好样式,然后通过css3的transform来做旋转,放大,缩小,增减,倾斜等等,然后通过鼠标移入:hover或者用js的mouse事件把它的transform设置为初始样式,它就可以通过css3的过渡transition从旋转,放大,缩小,增减,倾斜等状态变成正常状态,即生成了一个过渡动画。
:after和:before的content可以用来插入内容,比如

1
2
3
4
5
<span data-hover="home">首页</span>
span::before {
content: attr(data-hover);
}

那么:before中的类容就是home,当然data-hover不是必须叫这个,这只是一个自定义命名而已,你可以改成其他的,不过准守html5规范,命名还是在前面尽量要有data-
其实这玩意儿也没啥技术难度,多写写很简单的,就不多说什么了,给大家几个参考参考:

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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
.nav1 a span {
background: #587285;
box-shadow: inset 0 3px #2f4351;
transition: background 0.6s;
transform-style: preserve-3d;
transform-origin: 0% 50%;
}
.nav1 a span::before {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #fff;
color: #2f4351;
content: attr(data-hover);
transform: rotateX(270deg);
transition: transform 0.6s;
transform-origin: 0 0;
}
.nav1 a span:hover{
background: #2f4351;
}
.nav1 a span:hover::before{
transform: rotateX(0deg);
}
.nav2 a {
color: #237546;
text-shadow: none;
transition: color 0.3s;
}
.nav2 a::before {
top: 0;
transform: translateY(-10px);
}
.nav2 a::after{
bottom: 0;
transform: translateY(10px);
}
.nav2 a::before, .nav2 a::after {
position: absolute;
width: 100%;
height: 2px;
background: #fff;
content: '';
opacity: 0;
transition: opacity 0.3s, transform 0.3s;
left: 0;
}
.nav2 a:hover{
color: #FFFFFF;
}
.nav2 a:hover::before,.nav2 a:hover::after{
transform: translateY(0px);
opacity: 1;
}
.nav3 a span{
position: relative;
display: inline-block;
width: 100%;
background: #e35041;
transition: transform 0.4s, background 0.4s;
transform-style: preserve-3d;
transform-origin: 50% 50% -100px;
}
.nav3 a:hover span{
transform:rotateY(-90deg);
background:#b53a2d;
}
.nav3 a span::before {
position: absolute;
top: 0;
left: 100%;
width: 100%;
height: 100%;
background: #b53a2d;
content: attr(data-hover);
transition: background 0.4s;
transform: rotateY(90deg);
transform-origin: 0 50%;
pointer-events: none;
}
.nav3 a:hover span::before{
background:#E35041;
}

效果展示:

感兴趣的话可以去看代码链接参考参考
本文代码地址链接