怎么使用CSS3创建动态菜单

html-css09

怎么使用CSS3创建动态菜单,第1张

第一步:编辑菜单的HTML代码。

菜单包含三个列表项,分别取名为“Menu1”、“Menu2”、“Menu3”。

XML/HTML Code

<div class="css3Menus">      

<ul>      

   <li>Menu1</li>      

   <li>Menu2</li>      

   <li>Menu3</li>      

</ul>      

</div>

第二步:设置菜单的背景。

在该步骤中,把导航的背景设置为黑色。宽度、高度和内边距为可选项,可以不设置。

CSS Code

.<span style="width: auto height: auto float: none" id="4_nwp"><a style="text-decoration: none" mpid="4" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=e2fbae28688be8a0&k=css3&k0=css3&kdi0=0&luki=10&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=a0e88b6828aefbe2&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F2453%2Ehtml&urlid=0" id="4_nwl"><span style="color:#0000fffont-size:14pxwidth:autoheight:autofloat:none">css3</span></a></span>Menus {      

background: #14080a      

width:506px      

height:260px      

padding:20px      

}

如下图:

第三步:利用border-radius,制作圆形导航。

该步中,利用CSS3的一些酷的功能,尤其是border-radius ,将每个列表项的背景设置为黄色,形状为圆形。

CSS Code

ul {      

list-style: none      

}      

   

li {      

float:left      

font: 14px/10px Arial, Verdana, sans-serif      

color:#FFF      

background-color:#CCCC00      

width: 80px      

height: 80px      

padding:20px      

margin:0 30px 0 0      

-webkit-border-radius: 60px      

-moz-border-radius: 60px      

border-radius: 60px      

}

菜单看起来呈下面样子:

第四步:设置菜单的对齐方式。

本步骤中,将为每个列表项设置特定的背景颜色与位置:

CSS Code

li#menu1 {      

background-color: #00FFCC      

}      

li#menu2 {      

background-color: #CC9900      

margin-top:100px      

}      

li#menu3 {      

background-color: #33FF66      

margin-top:50px      

}

现在菜单看起来呈下面样子:

第五步:设置菜单中链接的对齐方式。

CSS Code

li a {      

color:#FFF      

text-decoration:none      

display:<span style="width: auto height: auto float: none" id="2_nwp"><a style="text-decoration: none" mpid="2" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=e2fbae28688be8a0&k=block&k0=block&kdi0=0&luki=7&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=a0e88b6828aefbe2&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F2453%2Ehtml&urlid=0" id="2_nwl"><span style="color:#0000fffont-size:14pxwidth:autoheight:autofloat:none">block</span></a></span>      

width: 80px      

height: 45px text-align: center      

padding:35px 0 0 0      

margin:0 40px 0 0      

-webkit-border-radius: 40px      

-moz-border-radius: 40px      

border-radius: 40px      

}      

li#menu1 a {      

background-color: #FF0000      

}      

li#menu2 a {      

background-color: #660033      

}      

li#menu3 a {      

background-color: #66CCCC      

}

菜单现阶段的样子:

第六步:定义另一种效果,当鼠标悬浮在链接上时进行展现。 

CSS Code

li a:hover,      

li a:focus,      

li a:active {      

width: 120px      

height:65px      

padding:55px 0 0 0      

margin:-20px 0 0 -20px      

-webkit-border-radius: 60px      

-moz-border-radius: 60px      

border-radius: 60px      

}

菜单样式如图:

第七步:最后为导航增加动画效果。

CSS Code

li a:hover,      

li a:focus,      

li a:active {      

-webkit-animation-name:bounce      

-webkit-animation-duration:1s      

-webkit-animation-iteration-count:4      

-webkit-animation-direction:alternate      

}      

@-webkit-keyframes bounce{<span style="width: auto height: auto float: none" id="1_nwp"><a style="text-decoration: none" mpid="1" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=e2fbae28688be8a0&k=from&k0=from&kdi0=0&luki=2&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=a0e88b6828aefbe2&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F2453%2Ehtml&urlid=0" id="1_nwl"><span style="color:#0000fffont-size:14pxwidth:autoheight:autofloat:none">from</span></a></span>{margin:0 40px 0 0}      

to{margin:120px 40px 0 0}      

}

菜单所产生的动画效果:

网页转换时的过渡效果

当我们点击网页上的链接时,浏览器页面就会转到链接指向的新的页面,我们想在页面转换时加上过渡效果。

打开这个页面的原代码,在<head>与</head>插入代码:

<meta http-equiv="Page-Exit" content="revealTrans(Duration=3,Transition=5)">

这样这个过渡效果就完成了,很简单吧。现在我们来测试一下效果如何,打开这个页面,然后点击页面上的链接,页面在转到下一个页面的过程中,我们看到页面是从上到下慢慢的转换到第二个页面的。

我们现在再试一个效果,将那段代码换成:

<meta http-equiv="Page-Exit" content="revealTrans(Duration=1,Transition=14)">

我们看到页面是从中间向左右两端展开过渡的,而且速度上快了一点。原因在于Duration和Transition的值不同。

Duration的值为网页动态过渡的时间,单位为秒。

Transition是过渡方式,它的值为0到23,分别对应24种过渡方式。如下表:

0 盒状收缩1 盒状放射

2 圆形收缩3 圆形放射

4 由下往上5 由上往下

6 从左至右7 从右至左

8 垂直百叶窗9 水平百叶窗

10 水平格状百叶窗11垂直格状百叶窗

12 随意溶解13从左右两端向中间展开

14从中间向左右两端展开15从上下两端向中间展开

16从中间向上下两端展开17 从右上角向左下角展开

18 从右下角向左上角展开19 从左上角向右下角展开

20 从左下角向右上角展开21 水平线状展开

22 垂直线状展开23 随机产生一种过渡方式

当Transition为23时,会随机产生0到22中的一个过渡效果。例如:

<meta http-equiv="Page-Exit" content="revealTrans(Duration=2,Transition=23)">

除了上面两个参数,还有一个http-equiv:

http-equiv="Page-Exit"的意思是指页面离开时产生效果。

它有一种写法,如:

http-equiv="Page-Enter"则是指页面进入时产生的效果。

好了,现在大家自己测试一下效果吧。

当我们点击网页上的链接时,浏览器页面就会转到链接指向的新的页面,我们想在页面转换时加上过渡效果。

打开这个页面的原代码,在<head>与</head>插入代码:

<meta http-equiv="Page-Exit" content="revealTrans(Duration=3,Transition=5)">

这样这个过渡效果就完成了,很简单吧。现在我们来测试一下效果如何,打开这个页面,然后点击页面上的链接,页面在转到下一个页面的过程中,我们看到页面是从上到下慢慢的转换到第二个页面的。

我们现在再试一个效果,将那段代码换成:

<meta http-equiv="Page-Exit" content="revealTrans(Duration=1,Transition=14)">

我们看到页面是从中间向左右两端展开过渡的,而且速度上快了一点。原因在于Duration和Transition的值不同。

Duration的值为网页动态过渡的时间,单位为秒。

Transition是过渡方式,它的值为0到23,分别对应24种过渡方式。如下表:

0 盒状收缩1 盒状放射

2 圆形收缩3 圆形放射

4 由下往上5 由上往下

6 从左至右7 从右至左

8 垂直百叶窗9 水平百叶窗

10 水平格状百叶窗11垂直格状百叶窗

12 随意溶解13从左右两端向中间展开

14从中间向左右两端展开15从上下两端向中间展开

16从中间向上下两端展开17 从右上角向左下角展开

18 从右下角向左上角展开19 从左上角向右下角展开

20 从左下角向右上角展开21 水平线状展开

22 垂直线状展开23 随机产生一种过渡方式

当Transition为23时,会随机产生0到22中的一个过渡效果。例如:

<meta http-equiv="Page-Exit" content="revealTrans(Duration=2,Transition=23)">

除了上面两个参数,还有一个http-equiv:

http-equiv="Page-Exit"的意思是指页面离开时产生效果。

它有一种写法,如:

http-equiv="Page-Enter"则是指页面进入时产生的效果。

好了,现在大家自己测试一下效果吧。

当我们点击网页上的链接时,浏览器页面就会转到链接指向的新的页面,我们想在页面转换时加上过渡效果。

打开这个页面的原代码,在<head>与</head>插入代码:

<meta http-equiv="Page-Exit" content="revealTrans(Duration=3,Transition=5)">

这样这个过渡效果就完成了,很简单吧。现在我们来测试一下效果如何,打开这个页面,然后点击页面上的链接,页面在转到下一个页面的过程中,我们看到页面是从上到下慢慢的转换到第二个页面的。

我们现在再试一个效果,将那段代码换成:

<meta http-equiv="Page-Exit" content="revealTrans(Duration=1,Transition=14)">

我们看到页面是从中间向左右两端展开过渡的,而且速度上快了一点。原因在于Duration和Transition的值不同。

Duration的值为网页动态过渡的时间,单位为秒。

Transition是过渡方式,它的值为0到23,分别对应24种过渡方式。如下表:

0 盒状收缩1 盒状放射

2 圆形收缩3 圆形放射

4 由下往上5 由上往下

6 从左至右7 从右至左

8 垂直百叶窗9 水平百叶窗

10 水平格状百叶窗11垂直格状百叶窗

12 随意溶解13从左右两端向中间展开

14从中间向左右两端展开15从上下两端向中间展开

16从中间向上下两端展开17 从右上角向左下角展开

18 从右下角向左上角展开19 从左上角向右下角展开

20 从左下角向右上角展开21 水平线状展开

22 垂直线状展开23 随机产生一种过渡方式

当Transition为23时,会随机产生0到22中的一个过渡效果。例如:

<meta http-equiv="Page-Exit" content="revealTrans(Duration=2,Transition=23)">

除了上面两个参数,还有一个http-equiv:

http-equiv="Page-Exit"的意思是指页面离开时产生效果。

它有一种写法,如:

http-equiv="Page-Enter"则是指页面进入时产生的效果。