2017-03-11 16 views
4

このJSFiddleをご覧ください:要するにhttps://jsfiddle.net/fmhhg00d/3/ライン/ボーダー半径との国境、オーバーフロー:隠された着色背景

<div><span>•</span></div> 

div { 
width: 500px; 
height:500px; 
background: blue; 
overflow: hidden; 
border-radius:50%; /* --> Remove this and it's alright */ 
} 

span { 
line-height:0.20; 
font-size: 2500px; 
color: white; 
} 

See the problem here

を、なぜクローム/エッジ/ Firefoxのすべてが理由です私はオーバーフローを使用すると小さな青色の枠線を残します:親にborder-radiusとhidden?これを回避する方法はありますか?

+0

を達成するために、擬似要素を使用することができ、白のドットが、それはと交差しない、あなたの写真に比べて道小さく、丸められたdivのエッジ – domsson

+0

私は@ハリーがこれについての修正を見つけたと思っていますが、これを見つけようとしました....あなたはハリーですか? – LGSon

答えて

0

あなたが見ているのは、アンチエイリアス合成によるものです。 spanは、divとは別に描画され、アンチエイリアス処理され、レイヤーされます。 divのエッジの周りの部分的な透明度は、spanのエッジの周りの部分的な透明度を介して出ます。実際にこれを修正する方法はありません。

2

つまり、としてOuroborusと回答しました。アンチエイリアスの問題です。回避策として

、あなたが与えられたレイアウト私にとって

body { 
 
    background: #f8f8f8; 
 
} 
 
div { 
 
    position: relative; 
 
    width: 500px; 
 
    height:500px; 
 
    overflow: hidden; 
 
    border-radius:50%; 
 
} 
 
div::before, 
 
div::after { 
 
    content: ''; 
 
    position: absolute; 
 
    top: 0; left: -180px; 
 
    width: 500px; 
 
    height:500px; 
 
    background: blue; 
 
} 
 
div::after { 
 
    left: 140px; 
 
    background: white; 
 
    border-radius:50%; 
 
}
<div></div>

+0

このようなデザインを実現するには、この青い円を右下の白い色で覆うにはどうしたらよいですか? - http://geometrydaily.tumblr.com/image/126507813677?lipi=urn%3Ali%3Apage%3Ad_flagship3_messaging%3B7rF1ABk9SqSL%2FjI1aqgpKw %3D%3D私はそれをやろうとしましたが、右下を覆うことができませんでした。これを参照してください - https://codepen.io/anon/pen/MQMrPw – gauravparmar

+0

@ gauravparmarこれはあなたの意味ですか? ... https://codepen.io/anon/pen/OQeroB – LGSon

+0

@ gauravparmar色のにじみを引き起こすのはアンチエイリアス効果です。別のオプションは、SVGイメージを代わりに使用することが最善の方法です。これにより、透明な背景を持つ図形を作成することができます。これは、HTML/CSSを使用するとさらに難しくなります。 – LGSon

関連する問題