マークアップを考案するとき、可能であればインライン画像要素の代わりに bg 画像を使用することを強くお勧めします。理由はいくつかありますが、主な理由は次の 2 つです。
- インライン img 要素は、css 疑似クラス :before および :after を使用できません
- 境界線の半径を使用する場合、インライン画像はコーナーをマスクするのが難しく、特に複数の境界線がある場合は注意が必要です。
また、このデザインは 1 つの div を使用して完全に作成できることを意味します。これが私がそれを行う方法です:
HTML
<div class="thumbnail"></div>
CSS
.thumbnail {
height: 50px; width: 50px;
border-radius: 50px;
background: url(http://www.tapdog.co/images/welcome/satelite-bg.jpg) no-repeat;
background-size: cover;
border: solid 1px #aaa;
box-shadow: 0 0 0 4px #eee, 0 0 0 5px #aaa;
}
ここで重要な点は、box-shadow を使用して疑似境界線をいくつでも作成できることです。border プロパティを使用して実際の境界線を追加することもできますが、さらに進んで疑似クラスを使用して境界線を追加することもできます。疑似クラスはそれぞれ独自の border および box-shadow プロパティを取ることができます。
ここでのもう 1 つの注目すべき点は、背景サイズ プロパティの使用です。特に、ユーザーが生成した画像、または可変サイズの画像を扱う場合。ブラウザ間の互換性のためにベンダー プレフィックスを追加する必要があります
そして、ここに例のあるコードペンがあります。http://codepen.io/anon/pen/dKxbh