2016-02-02 28 views
22

境界線の色を背景色と同じにすることはできますか?私の例では、同じ色でなければなりませんが、境界の色は常に背景色より少し暗いです。CSSで色の値が同じでも、境界線と背景が異なる色で表示される

.box { 
 
    min-width: 50px; 
 
    background: rgba(0, 0, 0, .2); 
 
    border: 10px solid rgba(0, 0, 0, .2); 
 
}
<div class="box">foo</div>

+8

それは同じcoloですr、それはちょうど重なっている。 – Goombah

+0

または、境界の代わりにパディングを使用します。 –

答えて

36

あなたは、デフォルトでは、このプロパティは、このようborder-boxに設定されているため、背景も国境の下の領域をカバーしていbackground-clip: padding-box;(またはcontent-box)を指定する必要があります。

あなたが得ている効果は実際に透明度が重なり合っていることです(問題が気付かれない完全な色で)。そのため、ボーダーが背景色より少し暗く見える理由ですfcalderanの答えに加えて

.box { 
 
    min-width: 50px; 
 
    background: rgba(0, 0, 0, .2); 
 
    background-clip: padding-box; 
 
    border: 10px solid rgba(0, 0, 0, .2); 
 
}
<div class="box">foo</div>

+0

ありがとう、私はできるだけ早くそれを受け入れるよ。 – Peter

11

のdivの背景色は、単純に伝わってくるので、あなたもborder-colorを透明にすることができます:

.box { 
 
    min-width: 50px; 
 
    background: rgba(0, 0, 0, .2); 
 
    border: 10px solid transparent; 
 
}
<div class="box">foo</div>

+0

'10px'は透明ではありませんか? – Peter

+1

いいえ、要素を調べると、境界線がまだ物理的に存在していることがわかります。それは文字通りtrasnparentです:-) –

+0

ええ、それは意味したことです。しかし、あなたの権利、肉体的には国境はまだそこにあります。 :) – Peter

3

あなたは余分なライン

.box { 
 
    min-width: 50px; 
 
    background: rgba(0, 0, 0, .2); 
 
    border:10px solid rgba(0, 0, 0, .0); 
 
}
<div class="box">foo</div>

5

を記述する必要はありませんまたは別の決定することができます - ちょうどボックスシャドウであなたの国境をエミュレート

.box { 
    min-width: 50px; 
    background: rgba(0, 0, 0, .2); 
    box-shadow:0 0 0 10px rgba(0, 0, 0, .2) 
} 
関連する問題