2013-04-11 13 views
25

CSSの透過性にはrgba(0, 0, 0, 0)またはrgba(255, 255, 255, 0)を使用しますか?CSSの透過性のためにrgba(0、0、0、0)またはrgba(255,255,255、0)を使用しますか?

それぞれの賛否両論は何ですか?

+0

不透明度を変更する場合は、1つは白で、1つは黒です。さもなければそれはまだ透明です。これが疑問視されたシナリオは何ですか? –

+4

"@JackManey"なぜそれは問題なのでしょうか? "私は知らないので、私が尋ねた理由です。 – Joe

答えて

49

rgba()関数の最後のパラメータは、 "alpha"または "opacity"パラメータです。 0に設定すると、「完全に透過的」を意味し、最初の3つのパラメータ(red,​​、およびblueのチャンネル)は、色を見ることができないため問題になりません。念頭に置いて

ので、私はrgba(0, 0, 0, 0)を選ぶだろう:それはそれはあなたが明白な問題が表示されますあなたのCSSファイルのうち、いくつかの余分なバイトを保持し、かつ

  • 少ないタイピング、
    1. アルファ値が望ましくないものに変わった場合。

    あなたw3.orgによると、「透明な黒」に相当し、rgba(0, 0, 0, 0)に計算するべき、完全rgbaモデルを避け、代わりにtransparentキーワードを使用することができます。たとえば、次のように透明性を使用してのあなたの意図は明白である間、これはまた別のカップルのバイトをあなたが保存されます

    h1 { 
        background-color: transparent; 
    } 
    

    (場合には1をRGBAに不慣れです)。

    CSS3では、色を受け入れるすべてのCSSプロパティにtransparentキーワードを使用できます。

  • 8

    アルファで色を保存するには2通りの方法があります。最初のものはあなたがそれを見るのとまったく同じで、各コンポーネントはそのままです。 2番目の方法は、アルファベットをにあらかじめ乗算して使用することです。ここで、カラー値は0.0〜1.0の範囲に変換された後にアルファで乗算されます。これはcompositingを簡単にするために行われます。通常は、特定のエンジンによってどのような方法が実装されているかを気にする必要はありませんが、色の不透明度を上げようとした場合など、コーナーケースがあります。 rgba(0, 0, 0, 0)を使用すると、2つの方法の違いを見る可能性は低くなります。

    +4

    これは正解です。具体的には、「色の不透明度を上げようとした場合など、コーナーケースがある」と言われている部分は、グラデーションを使って作業するときに特に当てはまります。イメージ値モジュール[必須](http:// www .w3.org/TR/css3-images /#color-stop-syntax)を使用して、グラディエントカラーを事前に乗算したRGBA空間で計算します。ただし、実装は依然としてブラウザによって異なります。特に、最近の一部のバージョンでは仕様の要件に違反しています(公正であるとはいえ、最近の改訂まで指定されていないと思います)。 – BoltClock

    1

    あり小さな差uはRGBA(255,255,255、)を使用し、背景色は0.0〜1.0「」増加の値としてますます軽くなります。 rgba(0,0,0,)を使用する場合、 'a'の値が0.0から1.0に増加するにつれて、背景色はますます暗くなります。 しかし、(255,255,255,0)と(0,0,0,0)の両方が背景を透明にしていることは明らかです。 (255,255,255,1)は、背景を完全に白にし、as(0,0,0,1)は背景を完全に黒くします。

    +2

    これは本当に質問に答えるものではなく、この質問に対する他の回答の少なくとも1つによってまだ提供されていない情報を含んでいません。 –

    +1

    あなたはどうやってそれが質問に答えることができないと言うことができます!私は賛否両論が理解できるようにrgba()の背後にある概念を説明しようとしました。 –

    +2

    あなたは 'rgba(...)'が何をしているのか説明しましたが、それはOPが求めていたものではありません。この質問に対する他の答えを見てみると、あなたとはかなり異なっています。 –

    関連する問題