本实例通过:before和:after生成高度和宽度透明度都为0且背景为渐变的两个内容,两个不同点在于绝对定位的位置一个为left,一个为right,然后渐变背景的方向刚好相反;最后当鼠标滑过改变高度宽度及透明度,就完成了该动画。因为是对:hover状态下的:before和:after生成的内容进行宽度变化,所以该实例如同先前的那个:hover状态下的激发伪元素动画一样,webkit内核是不支持的。
css主要代码为:
.effects:after, .effects:before { -moz-transition:width 0.5s ease 0s; height: 0px; width: 0px; position: absolute; content: ' '; display: block; opacity:0; box-shadow: 0px 0px 5px #00c6ff; } .effects:after { background: -moz-linear-gradient(left, #0ad, #08b); top: 84px; left: 75px; } .effects:before { background: -moz-linear-gradient(right, #0ad, #08b); top: 84px; right:75px; } .effects:hover:after, .effects:hover:before{ width: 72px; height: 1px; opacity:1; }
更多资料:http://www.alessioatzeni.com/blog/css3-navigation-with-transitions/