私の最終バージョン: デモhttp://dabblet.com/gist/3149345 (IE9+、Opera 10.5+、Chrome、FF、Safari で動作)
HTML 構造:
<div class="comment b">
<a href="#" class="img-wrapper"><img src=""></a>
<div class="comment-content">
<p><!--a lot of text here--></p>
</div>
</div>
まず、 を.img-wrapper
左にフロートさせ、白い背景に加えて、右上と右下の境界線の半径を にし50%
ます。そして、その上の画像には黒い背景があります。
次に、 で 2 つの疑似要素を使用し.comment
ます。幅と高さの両方を(この場合) にborder-radius
使用されるものと同じにします。また、それらの値を(この場合は )の高さに等しくなるように設定します。.comment
20px
position: absolute
top
.img-wrapper
130px
:before
要素に白い背景を与え、要素:after
に黒い背景を与えます。また、画像ラッパーの下でも同じ角丸効果を実現するために、:after
要素の左上を 100%にします。border-radius
.comment {
width: 500px;
border-radius: 20px;
padding:20px;
margin: 5% auto;
position: relative;
background: #000;
color: #fff;
}
.a {
height: 90px;
}
.b:before, .b:after {
top: 130px;
left: 0;
width: 20px;
height: 20px;
display: block;
position: absolute;
content: '';
}
.b:before {
background: #fff;
}
.b:after {
border-radius: 100% 0 0 0;
background: #000;
}
.img-wrapper {
width: 130px;
height: 130px;
border-radius: 0 50% 50% 0;
margin: -20px 20px 20px -20px;
float: left;
background: #fff;
}
.img-wrapper img {
width: 120px;
height: 120px;
margin: 5px;
border-radius: 50%;
background: #000;
}