我在一个按钮上有一个坚实的背景颜色,我正在寻找一些CSS(3?),它会在颜色的顶部覆盖一个半透明的白色,但仅限于它的前50%。我正在寻找一种非渐变,非基于图像的光泽效果。
如何在不使用图像的情况下实现这一目标?如果解决方案不支持旧浏览器,那就没关系。
编辑:以下书架的答案似乎有效,但字体也变得透明......
<!DOCTYPE html>
<html>
<head>
<style>
a
{
display: inline-block;
padding:30px;
background: salmon;
position: relative;
text-align: center;
text-decoration:none;
color:#000;
font-size:20pt;
font-weight:bold;
}
a:before
{
content: '';
width: 100%;
height: 50%;
background: rgba(255,255,255,0.5);
position: absolute;
top: 0;
left:0;
}
</style>
</html>
<body>
<div>
<a href="#">Test Link</a>
</div>
</body>
</html>
谢谢,
安迪
答案 0 :(得分:2)
在相对父级上使用绝对定位的伪元素。
a {display: block; width: 100px; height: 50px; background: salmon; position: relative;}
a:before {
content: '';
width: 100%;
height: 50%;
background: rgba(255,255,255,.5);
position: absolute;
top: 0;
left:0;
}
答案 1 :(得分:1)
另一种完全不同的技术(提到但未在评论中解释)是使用带有硬色停止的CSS3渐变。
a {display: block; width: 100px; height: 50px; position: relative;
background: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(50%, rgba(255, 255, 255, 0)), color-stop(50%, rgba(255, 255, 255, 0.5))), salmon;
background: -webkit-linear-gradient(bottom, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0.5) 50%), salmon;
background: -moz-linear-gradient(bottom, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0.5) 50%), salmon;
background: -o-linear-gradient(bottom, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0.5) 50%), salmon;
background: linear-gradient(bottom, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0.5) 50%), salmon;}