2017-08-17 25 views
2

テキストを背景色で飾りつけようとしているので、背景色でスパンで囲んでいます。スパンには境界線の色もあり、境界線がある場合は角が丸くなります。空白のみを含むスパンにボックスの影が表示されない

隣接するスパンの境界線の色が異なるが、背景色が同じで、右側のスパンが左の境界線を丸めているときに問題が発生しています。その場合、背景色は連続して見えません(境界線が丸くなるため)、左の範囲にボックスシャドーを適用して偽装しようとしています。

このソリューションは、ほぼすべての場合に機能します。ただし、左側のスパンに空白だけが含まれている場合は、ボックスシャドウが表示されていないように見えます。これはChrome、Safari、Firefoxで再現可能なため、ブラウザのバグではないようです。ここで

は、私はスタイルにしようとしているhtmlです:ここでは

<div> 
    hello<span class="left"> </span><span class="right"><span>world<span></span> 
</div> 

は、関連するCSSです:

div { 
    white-space: pre-wrap; 
} 

.left { 
    border-style: solid; 
    border-width: 1px 0; 
    border-color: blue; 
    box-shadow: 8px 0 #ddd; 
    background-color: #ddd; 
} 

.right { 
    border-style: solid; 
    border-top-left-radius: 6px; 
    border-bottom-left-radius: 6px; 
    border-color: green; 
    border-width: 1px 0 1px 1px; 
    background-color: #ddd; 
} 

.right > span { 
    margin-right: -1px; 
} 

は、ここでは、ボックス影がない例を見ることができますフィドルです

https://jsfiddle.net/fraziermork/jnnjq36b/1/

+0

OK、問題が表示されます。あなたは、丸い角を越えて出血する疑似背景を指しています。グリフをカバーする背景は、背景色プロパティによってレンダリングされます。 – BoltClock

+0

左右のスパンの間に改行を挿入すると、ボックスシャドウが左のスパンのボックスとの間にギャップを置いてレンダリングされていることがわかります。私はうんざりしている。 – BoltClock

+0

ああ、私はそれに気付かなかった。それは超奇妙です。 – fmork

答えて

1

私はChの中であなたのバイオリンを試してみました:と表示されません。ローマとドロップシャドウはいずれの例でも機能しませんでした。あなたのボックスシャドウプロパティの表記が問題のようです。

box-shadow: 0 0 8px #ddd; 

このスタイル表記は機能するはずです。

+0

-moz-box-shadowは機能していないか、または数年前から-webkit-box-shadowが必要でした。プレフィックスを指定するのは本当に驚きです。 – BoltClock

+0

それは面白いです。私はバージョン60.0.3112.90(公式ビルド)(64ビット)のChromeと-webkit-box-shadowを使用しています:0 0 8px 0 black;間違いなく動作するようです。 –

+0

接頭辞ではなく、表記です!なんらかの理由で、 'box-shadow:8px 0 #ddd; 'は他の表記が機能している間は適用されません:https://jsfiddle.net/jnnjq36b/3/ – Christoph

関連する問題