-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

もう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 に答える