-4

我在按钮上有一个纯色的背景颜色,我正在寻找一些 CSS(3?),它会在颜色顶部覆盖一个半透明的白色,但只在它的前 50% 上。我正在寻找一种非渐变、非基于图像的光泽效果。

不使用图像如何实现?如果解决方案不支持旧版浏览器也没关系。

编辑: bookcasey 下面的答案似乎有效,除了字体也变得透明......

<!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>

谢谢,

安迪

4

2 回答 2

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;
}

​</p>

于 2012-10-23T22:32:10.247 回答
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;}​

演示

于 2012-10-24T00:44:51.753 回答