基本上我正在尝试使用图片和CSS模拟Photoshop的图像叠加效果,用于菜单。菜单背景图片有两个版本:一个是正常状态(粉色),另一个是活动状态(蓝色)。整个菜单都包裹在一个DIV中,使用正常(粉色)图像作为背景。
如何使每个活动菜单链接使用相应的蓝色图像切片呢?就像这样:
你认为这可以通过CSS实现吗? 我的代码
如何使每个活动菜单链接使用相应的蓝色图像切片呢?就像这样:
你认为这可以通过CSS实现吗? 我的代码
CSS仅适用于现代浏览器的解决方案:
ul {
background-color:#ff00ff;
background-image: -moz-radial-gradient(50% 50%, ellipse closest-side, #ffffff 0%,#ff00ff 110%);
background-image: -webkit-radial-gradient(50% 50%, ellipse closest-side, #ffffff 0%,#ff00ff 110%);
background-image: -o-radial-gradient(50% 50%, ellipse closest-side, #ffffff 0%,#ff00ff 110%);
background-image: -ms-radial-gradient(50% 50%, ellipse closest-side, #ffffff 0%,#ff00ff 110%);
background-image: radial-gradient(50% 50%, ellipse closest-side, #ffffff 0%,#ff00ff 110%);
height:50px;
width:400px;
margin:0;
padding:0;
border-radius:25px;
overflow:hidden;
}
li {
width:100px;
height:50px;
float:left;
}
li:hover {
background-color:rgba(0,0,255,0.2);
}
然后
li.active {
background: url('path/to/yourImage.png') no-repeat -50px 0;
/* 50px or however wide that rounded tip is */
}
li.active.first {
background-position: left top;
}
li.active.last {
background-position: right top;
}
/* you'll need to add 'active', 'first' and 'last' classes accordingly. */
你是否会在圆角处添加链接?如果不是,你可以只取蓝色图像的一个像素宽度切片,并将其设置为:hover
状态的背景,使用repeat-x
。
当然还有其他方法可以实现这个效果,但我认为这是最直接的方法。
编辑:看了你的fiddle之后,也许情况并非如此。我建议使用JavaScript来计算每个链接的适当x偏移量,并以这种方式使用覆盖图像的一部分。或者您可以将第一个链接作为“特殊情况”,并为其余链接使用通用的不同颜色背景。