CSSの角丸で、画像を丸く表示する
CSS3の角丸で、サムネイルなどの画像をかわいく見せる方法です。
CSSのborder-radiusを使って、ほぼ画像の中心付近で丸く表示されるようにします。
結論から言うと、横長写真、縦長写真では、CSSが若干異なります。一つのCSSコードでは無理でした・・。また、IE9以下は四角になります。
横長写真の場合
4:3の横長写真を150pxの丸画像にします。
HTML
<div class="circle-box-yoko"><img alt="" src="sample-food-potato.jpg" width="600" height="420" /></div>
CSS
div.circle-box-yoko { height: 150px; width: 150px; overflow: hidden; -webkit-border-radius: 100px; -moz-border-radius: 100px; border-radius: 100px; box-shadow: 0px 0px 0px 3px #F60; -moz-box-shadow: 0px 0px 0px 3px #F60; -webkit-box-shadow: 0px 0px 0px 3px #F60; } .circle-box-yoko img { width: 300px; height: auto; margin-left: -50%; margin-top: -25%; }
ポイント
- 枠線をbox-shadowで表現している点です。borderで枠線を表現するとsafariではうまく表示できません。
- 画像幅を150pxの倍の300pxにして中心に持ってくるようにしています。
縦写真の場合
4:3の縦長写真を150pxの丸画像にします。
HTML
<div class="circle-box-yoko"&gt;&lt;img alt="" src="sample-food-potato.jpg" width="600" height="420" />
CSS
div.circle-box-tate { height: 150px; width: 150px; overflow: hidden; -webkit-border-radius: 100px; -moz-border-radius: 100px; border-radius: 100px; box-shadow: 0px 0px 0px 3px #F60; -moz-box-shadow: 0px 0px 0px 3px #F60; -webkit-box-shadow: 0px 0px 0px 3px #F60; } .circle-box-tate img { width: auto; height: 300px; margin-left: -25%; margin-top: -50%; }
ポイント
- イメージを調整するCSS「circle-box-tate」の内容を変更するだけです。
jQueryのMyThumbnail.jsを使って丸画像にする
MyThumbnail.jsを使うと、画像を中心にしてトリミングしてくれます。 後は、CSSで装飾すると完成です。
JavaScript
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> <script type="text/javascript" src="jquery.MyThumbnail.js"/> <script type="text/javascript"> $(document).ready(function(){ $(".thumbnails img").MyThumbnail({ thumbWidth:150, thumbHeight:150 }); }); </script>
HTML
<div class="thumbnails"> <img src="sample-food-potato.jpg" width="600" height="420" /> </div>
CSS
.thumbnails { height: 150px; width: 150px; overflow: hidden; -webkit-border-radius: 100px; -moz-border-radius: 100px; border-radius: 100px; box-shadow: 0px 0px 0px 3px #F60; -moz-box-shadow: 0px 0px 0px 3px #F60; -webkit-box-shadow: 0px 0px 0px 3px #F60; }
まとめ
- 使用する画像サイズが一定の場合は、CSSで表現可能
- 使用する画像サイズがバラバラの場合は「MyThumbnail.js」を使用したほうが便利です