目前,对CSS3支持日趋完善,实现兼容性的渐变背景效果是完全可以的,让背景渐变与背景图片共存的方法很简单,主要要注意的是图片要 保持“最小单元”的准则,选择正确的浏览器,该问题就能得到解决,下面介绍一下具体的解决方法。
1、图片渐变切图时一定要以最小为准则,例如在做垂直方向的纯颜色的渐变时,尝试使用1个像素的竖直图片作为渐变背景“最小单元”。另外,要注意css3虽然支持很多的浏览器的兼容,但是目前不支持Opera浏览器。
2、如果兼容程度允许的话,纯色渐变背景可以使用css3的渐变样式,如{background: linear-gradient(left top, red , blue)},如此一来能够减少切图量,还可以加快网页加载速度,缺点是使用主流浏览器的话,就必须要添加前缀。
3、注意对于webkit核心的浏览器,如Chrome/Safari浏览器,在这些浏览器下要做到渐变背景,也需要使用CSS3 渐变方法,css-gradient,具体就是-webkit-gradient,使用语Firefox浏览器业是有一点差异的。
先给背景设置了渐变颜色并且旋转一定角度,实现斜着的渐变效果。接下来把背景放大500%,然后设置了一个15秒的动画,动画infinite无限循环。
动画部分就是对背景进行一个定位,实现渐变颜色的动态切换。
html结构
css样式
gitee地址: siebe/html-css-demo (https://gitee.com/siebe/html-css-demo)
第一步:编辑菜单的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 Codeul {
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 Codeli#menu1 {
background-color: #00FFCC
}
li#menu2 {
background-color: #CC9900
margin-top:100px
}
li#menu3 {
background-color: #33FF66
margin-top:50px
}
现在菜单看起来呈下面样子:
第五步:设置菜单中链接的对齐方式。
CSS Codeli 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 Codeli 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 Codeli 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}
}
菜单所产生的动画效果: