Rumah > Artikel > hujung hadapan web > css3制作炫酷导航栏效果
今天主要利用hover选择器。鼠标滑过查看效果。
一。普通导航栏
对于这种普通的导航栏,只是鼠标滑过的时候颜色会变,所以思路变得很简单。
(1)使用ul标签布局
(2)鼠标经过事件
<span style="color: #0000ff;"><span style="color: #800000;">div </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="demo1"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">ul</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">li</span><span style="color: #0000ff;">></span>Home<span style="color: #0000ff;"></span><span style="color: #800000;">li</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">li</span><span style="color: #0000ff;">></span>Content<span style="color: #0000ff;"></span><span style="color: #800000;">li</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">li</span><span style="color: #0000ff;">></span>Service<span style="color: #0000ff;"></span><span style="color: #800000;">li</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">li</span><span style="color: #0000ff;">></span>Team<span style="color: #0000ff;"></span><span style="color: #800000;">li</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">li</span><span style="color: #0000ff;">></span>Contact<span style="color: #0000ff;"></span><span style="color: #800000;">li</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></span><span style="color: #800000;">ul</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span></span></span></span></span></span></span></span>
<span style="color: #800000;">*</span>{<span style="color: #ff0000;"> padding</span>:<span style="color: #0000ff;">0</span>;<span style="color: #ff0000;"> margin</span>:<span style="color: #0000ff;">0</span>;<span style="color: #ff0000;"> list-style</span>:<span style="color: #0000ff;">none</span>;<span style="color: #ff0000;"> text-decoration</span>:<span style="color: #0000ff;">none</span>; }<span style="color: #800000;"> a</span>{<span style="color: #ff0000;"> color</span>:<span style="color: #0000ff;">#fff</span>; }<span style="color: #800000;"> #demo1</span>{<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;">600px</span>; }<span style="color: #800000;"> #demo1 ul li</span>{<span style="color: #ff0000;"> float</span>:<span style="color: #0000ff;">left</span>;<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;">100px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;">50px</span>;<span style="color: #ff0000;"> text-align</span>:<span style="color: #0000ff;">center</span>;<span style="color: #ff0000;"> background</span>:<span style="color: #0000ff;">#ccc</span>;<span style="color: #ff0000;"> line-height</span>:<span style="color: #0000ff;">50px</span>;<span style="color: #ff0000;"> color</span>:<span style="color: #0000ff;">#FFF</span>; }<span style="color: #800000;"> #demo1 ul li:hover</span>{<span style="color: #ff0000;"> background</span>:<span style="color: #0000ff;">#999</span>; }
(二)括号类导航栏
对于导航栏的排版这里就不多说了,可以看到当鼠标经过的时候会从文字中出现括号,思路:
(1)当无鼠标经过事件时,括号其实是有的,只不多它处于隐形状态在文字中间
(2)当鼠标经过时,括号从中间移动到两边,并且从隐形变为显示。
<span style="color: #0000ff;"><span style="color: #800000;">div </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="demo2"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">ul</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">li</span><span style="color: #0000ff;">><span style="color: #800000;">a </span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="#"</span><span style="color: #0000ff;">></span>Home<span style="color: #0000ff;"></span><span style="color: #800000;">a</span><span style="color: #0000ff;">></span><span style="color: #800000;">li</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">li</span><span style="color: #0000ff;">><span style="color: #800000;">a </span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="#"</span><span style="color: #0000ff;">></span>Content<span style="color: #0000ff;"></span><span style="color: #800000;">a</span><span style="color: #0000ff;">></span><span style="color: #800000;">li</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">li</span><span style="color: #0000ff;">><span style="color: #800000;">a </span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="#"</span><span style="color: #0000ff;">></span>Service<span style="color: #0000ff;"></span><span style="color: #800000;">a</span><span style="color: #0000ff;">></span><span style="color: #800000;">li</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">li</span><span style="color: #0000ff;">><span style="color: #800000;">a </span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="#"</span><span style="color: #0000ff;">></span>Team<span style="color: #0000ff;"></span><span style="color: #800000;">a</span><span style="color: #0000ff;">></span><span style="color: #800000;">li</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">li</span><span style="color: #0000ff;">><span style="color: #800000;">a </span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="#"</span><span style="color: #0000ff;">></span>Contact<span style="color: #0000ff;"></span><span style="color: #800000;">a</span><span style="color: #0000ff;">></span><span style="color: #800000;">li</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></span><span style="color: #800000;">ul</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span></span></span></span></span></span></span></span></span></span></span></span></span>
<span style="color: #800000;">#demo2</span>{<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;">600px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;">50px</span>;<span style="color: #ff0000;"> margin</span>:<span style="color: #0000ff;">20px auto</span>; }<span style="color: #800000;"> #demo2 ul li</span>{<span style="color: #ff0000;"> position</span>:<span style="color: #0000ff;">relative</span>;<span style="color: #ff0000;"> float</span>:<span style="color: #0000ff;">left</span>;<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;">100px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;">50px</span>;<span style="color: #ff0000;"> text-align</span>:<span style="color: #0000ff;">center</span>;<span style="color: #ff0000;"> line-height</span>:<span style="color: #0000ff;">50px</span>;<span style="color: #ff0000;"> background</span>:<span style="color: #0000ff;">#000</span>; }<span style="color: #800000;"> #demo2 ul li a:before</span>{<span style="color: #ff0000;"> content</span>:<span style="color: #0000ff;">"["</span>;<span style="color: #ff0000;"> margin-right</span>:<span style="color: #0000ff;">10px</span>;<span style="color: #ff0000;"> transform</span>:<span style="color: #0000ff;">translateX(20px)</span>;<span style="color: #ff0000;"> -webkit-transform</span>:<span style="color: #0000ff;">translateX(20px)</span>;<span style="color: #ff0000;"> -moz-transform</span>:<span style="color: #0000ff;">translateX(20px)</span>;<span style="color: #ff0000;"> -ms-transform</span>:<span style="color: #0000ff;">translateX(20px)</span>; }<span style="color: #800000;"> #demo2 ul li a:after</span>{<span style="color: #ff0000;"> content</span>:<span style="color: #0000ff;">"]"</span>;<span style="color: #ff0000;"> margin-left</span>:<span style="color: #0000ff;">10px</span>;<span style="color: #ff0000;"> transform</span>:<span style="color: #0000ff;">translateX(-20px)</span>;<span style="color: #ff0000;"> -webkit-transform</span>:<span style="color: #0000ff;">translateX(-20px)</span>;<span style="color: #ff0000;"> -moz-transform</span>:<span style="color: #0000ff;">translateX(-20px)</span>;<span style="color: #ff0000;"> -ms-transform</span>:<span style="color: #0000ff;">translateX(-20px)</span>; }<span style="color: #800000;"> #demo2 ul li a:before,#demo2 ul li a:after</span>{<span style="color: #ff0000;"> display</span>:<span style="color: #0000ff;">inline-block</span>;<span style="color: #ff0000;"> opacity</span>:<span style="color: #0000ff;">0</span>;<span style="color: #ff0000;"> transition</span>:<span style="color: #0000ff;">transform 0.3s, opacity 0.2s</span>;<span style="color: #ff0000;"> -moz-transition</span>:<span style="color: #0000ff;">transform 0.3s, opacity 0.2s</span>;<span style="color: #ff0000;"> -webkit-transition</span>:<span style="color: #0000ff;">transform 0.3s, opacity 0.2s</span>;<span style="color: #ff0000;"> -ms-transition</span>:<span style="color: #0000ff;">transform 0.3s, opacity 0.2s</span>; }<span style="color: #800000;"> #demo2 ul li a:hover::before,#demo2 ul li a:hover::after,#demo2 ul li a:focus::before,#demo2 ul li a:focus::after </span>{<span style="color: #ff0000;"> opacity</span>:<span style="color: #0000ff;"> 1</span>;<span style="color: #ff0000;"> -webkit-transform</span>:<span style="color: #0000ff;"> translateX(0px)</span>;<span style="color: #ff0000;"> -moz-transform</span>:<span style="color: #0000ff;"> translateX(0px)</span>;<span style="color: #ff0000;"> transform</span>:<span style="color: #0000ff;"> translateX(0px)</span>; }
三。滑动导航栏
从演示效果来看要注意两点
(1)鼠标经过时有横向从上到下
(2)鼠标经过时文字从上到下并且变换颜色
这就和上一个例子很像了
(1)横线其实是存在的,只不过鼠标没有经过时是在文字上方且透明的,鼠标经过时横线由上到下。
(2)文字这里就要定义一个动画了,因为在鼠标经过时它体现了三种状态:
①文字从现位置划下
②文字从出现在上方
③文字从上方滑到现位置
<span style="color: #0000ff;"><span style="color: #800000;">div </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="demo3"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">ul</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">li</span><span style="color: #0000ff;">><span style="color: #800000;">a </span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="#"</span><span style="color: #0000ff;">><span style="color: #800000;">span</span><span style="color: #0000ff;">></span>Home<span style="color: #0000ff;"></span><span style="color: #800000;">span</span><span style="color: #0000ff;">></span><span style="color: #800000;">a</span><span style="color: #0000ff;">></span><span style="color: #800000;">li</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">li</span><span style="color: #0000ff;">><span style="color: #800000;">a </span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="#"</span><span style="color: #0000ff;">><span style="color: #800000;">span</span><span style="color: #0000ff;">></span>Content<span style="color: #0000ff;"></span><span style="color: #800000;">span</span><span style="color: #0000ff;">></span><span style="color: #800000;">a</span><span style="color: #0000ff;">></span><span style="color: #800000;">li</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">li</span><span style="color: #0000ff;">><span style="color: #800000;">a </span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="#"</span><span style="color: #0000ff;">><span style="color: #800000;">span</span><span style="color: #0000ff;">></span>Service<span style="color: #0000ff;"></span><span style="color: #800000;">span</span><span style="color: #0000ff;">></span><span style="color: #800000;">a</span><span style="color: #0000ff;">></span><span style="color: #800000;">li</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">li</span><span style="color: #0000ff;">><span style="color: #800000;">a </span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="#"</span><span style="color: #0000ff;">><span style="color: #800000;">span</span><span style="color: #0000ff;">></span>Team<span style="color: #0000ff;"></span><span style="color: #800000;">span</span><span style="color: #0000ff;">></span><span style="color: #800000;">a</span><span style="color: #0000ff;">></span><span style="color: #800000;">li</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">li</span><span style="color: #0000ff;">><span style="color: #800000;">a </span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="#"</span><span style="color: #0000ff;">><span style="color: #800000;">span</span><span style="color: #0000ff;">></span>Contact<span style="color: #0000ff;"></span><span style="color: #800000;">span</span><span style="color: #0000ff;">></span><span style="color: #800000;">a</span><span style="color: #0000ff;">></span><span style="color: #800000;">li</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></span><span style="color: #800000;">ul</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
<span style="color: #800000;">#demo3 ul li</span>{<span style="color: #ff0000;"> float</span>:<span style="color: #0000ff;">left</span>;<span style="color: #ff0000;"> margin</span>:<span style="color: #0000ff;">0 25px</span>;<span style="color: #ff0000;"> position</span>:<span style="color: #0000ff;">relative</span>; }<span style="color: #800000;"> #demo3 ul li a</span>{<span style="color: #ff0000;"> color</span>:<span style="color: #0000ff;">#D8761E</span>;<span style="color: #ff0000;"> font-family</span>:<span style="color: #0000ff;">'Righteous', cursive</span>;<span style="color: #ff0000;"> display</span>:<span style="color: #0000ff;">block</span>;<span style="color: #ff0000;"> padding</span>:<span style="color: #0000ff;">10px 0</span>; }<span style="color: #800000;"> #demo3 ul li span</span>{<span style="color: #ff0000;"> display</span>:<span style="color: #0000ff;">block</span>; }<span style="color: #800000;"> #demo3 ul li a:before</span>{<span style="color: #ff0000;"> content</span>:<span style="color: #0000ff;">""</span>;<span style="color: #ff0000;"> position</span>:<span style="color: #0000ff;">absolute</span>;<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;">100%</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;">3px</span>;<span style="color: #ff0000;"> background</span>:<span style="color: #0000ff;">#D8761E</span>;<span style="color: #ff0000;"> bottom</span>:<span style="color: #0000ff;">0</span>;<span style="color: #ff0000;"> opacity</span>:<span style="color: #0000ff;">0</span>;<span style="color: #ff0000;"> -webkit-transform</span>:<span style="color: #0000ff;"> translate3d(0, -40px, 0)</span>;<span style="color: #ff0000;"> transform</span>:<span style="color: #0000ff;"> translate3d(0, -40px, 0)</span>;<span style="color: #ff0000;"> -webkit-transition</span>:<span style="color: #0000ff;"> -webkit-transform 0s 0.3s, opacity 0.2s</span>;<span style="color: #ff0000;"> transition</span>:<span style="color: #0000ff;"> transform 0s 0.3s, opacity 0.2s</span>; }<span style="color: #800000;"> #demo3 ul li a:hover::before</span>{<span style="color: #ff0000;"> opacity</span>:<span style="color: #0000ff;">1</span>;<span style="color: #ff0000;"> -webkit-transform</span>:<span style="color: #0000ff;"> translate3d(0, 0, 0)</span>;<span style="color: #ff0000;"> transform</span>:<span style="color: #0000ff;"> translate3d(0, 0, 0)</span>;<span style="color: #ff0000;"> -webkit-transition</span>:<span style="color: #0000ff;"> -webkit-transform 0.5s, opacity 0.1s</span>;<span style="color: #ff0000;"> transition</span>:<span style="color: #0000ff;"> transform 0.5s, opacity 0.1s</span>;<span style="color: #ff0000;"> -webkit-transition-timing-function</span>:<span style="color: #0000ff;"> cubic-bezier(0.4, 0, 0.2, 1)</span>;<span style="color: #ff0000;"> transition-timing-function</span>:<span style="color: #0000ff;"> cubic-bezier(0.4, 0, 0.2, 1)</span>; }<span style="color: #800000;"> #demo3 ul li a:hover span</span>{<span style="color: #ff0000;"> color</span>:<span style="color: #0000ff;">#510301</span>;<span style="color: #ff0000;"> -webkit-animation</span>:<span style="color: #0000ff;"> anim-francisco 0.3s forwards</span>;<span style="color: #ff0000;"> animation</span>:<span style="color: #0000ff;"> anim-francisco 0.3s forwards</span>; }<span style="color: #800000;"> @-webkit-keyframes anim-francisco </span>{<span style="color: #ff0000;"> 50% { opacity</span>:<span style="color: #0000ff;"> 0</span>;<span style="color: #ff0000;"> -webkit-transform</span>:<span style="color: #0000ff;"> translate3d(0, 100%, 0)</span>;<span style="color: #ff0000;"> transform</span>:<span style="color: #0000ff;"> translate3d(0, 100%, 0)</span>; }<span style="color: #800000;"> 51% </span>{<span style="color: #ff0000;"> opacity</span>:<span style="color: #0000ff;"> 0</span>;<span style="color: #ff0000;"> -webkit-transform</span>:<span style="color: #0000ff;"> translate3d(0, -100%, 0)</span>;<span style="color: #ff0000;"> transform</span>:<span style="color: #0000ff;"> translate3d(0, -100%, 0)</span>; }<span style="color: #800000;"> 100% </span>{<span style="color: #ff0000;"> opacity</span>:<span style="color: #0000ff;"> 1</span>;<span style="color: #ff0000;"> -webkit-transform</span>:<span style="color: #0000ff;"> translate3d(0, 0, 0)</span>;<span style="color: #ff0000;"> transform</span>:<span style="color: #0000ff;"> translate3d(0, 0, 0)</span>; }<span style="color: #800000;"> } @keyframes anim-francisco </span>{<span style="color: #ff0000;"> 50% { opacity</span>:<span style="color: #0000ff;"> 0</span>;<span style="color: #ff0000;"> -webkit-transform</span>:<span style="color: #0000ff;"> translate3d(0, 100%, 0)</span>;<span style="color: #ff0000;"> transform</span>:<span style="color: #0000ff;"> translate3d(0, 100%, 0)</span>; }<span style="color: #800000;"> 51% </span>{<span style="color: #ff0000;"> opacity</span>:<span style="color: #0000ff;"> 0</span>;<span style="color: #ff0000;"> -webkit-transform</span>:<span style="color: #0000ff;"> translate3d(0, -100%, 0)</span>;<span style="color: #ff0000;"> transform</span>:<span style="color: #0000ff;"> translate3d(0, -100%, 0)</span>; }<span style="color: #800000;"> 100% </span>{<span style="color: #ff0000;"> opacity</span>:<span style="color: #0000ff;"> 1</span>;<span style="color: #ff0000;"> -webkit-transform</span>:<span style="color: #0000ff;"> translate3d(0, 0, 0)</span>;<span style="color: #ff0000;"> transform</span>:<span style="color: #0000ff;"> translate3d(0, 0, 0)</span>; }<span style="color: #800000;"> }</span>
这里注意的是不能给标签设置宽高,因为一旦设置宽高会影响文字滑动路线,变得很夸张。这里加span也是这个原因,鼠标经过a时让span以a为参照进行滑动。
里面的标签就不解释了,自己查效果会更好哦。
我好无奈呀,用这个显示效果a标签和li的默认样式竟然不能取消,谁能告诉我为什么/(ㄒoㄒ)/~~ 不过自己编译的话在浏览器里是正常的