Nexus 9
PS4
Intuos Pro
Core i7-4790K
ページの先頭へ
トップに戻る
2013年5月30日 Web制作

【CSS3】border-radiusの使い方を徹底的に学んでみる


bradius備忘録です。
この記事を見ている人に説明は不要かと思いますが、border-radiusというのは要素の輪郭(border)を丸めるプロパティです。画像を使わずにリッチな表現が可能になるので、最近は色々なところで使われています。

適当なSample

横300px、縦120pxのdiv要素に、背景色とborder-radius:16pxを指定してみました。
こんな感じになります。
それではまず、border-radiusの仕組みを見てみましょう。

border-radiusの仕組み

border-radius: 16pxを指定した時、ブラウザはこんな感じで解釈しています。 br0 指定した値を半径に取った円が、角にくっついているようなイメージです。
また、水平方向と垂直方向で半径を変えることも出来ます。(後述)

角ごとに違う値をセットしてみる

角には「左上」「右上」「右下」「左下」の4つがありますが、それぞれに別の値をセットすることができます。
border-radius: 32px 16px 0 64px;(左上 右上 右下 左下 の順番です)
また、%で指定することも出来ます。水平方向、垂直方向のどちらにも適切な値が入るので、全ての値を100%にすると滑らかな円が作れます。
border-radius: 100% 100% 0 50%;;
marginやpaddingのように、省略して記述することも可能です。
border-radius: 一括指定; border-radius: 左上と右下 右上と左下; border-radius: 左上 右上と左下 右下; border-radius: 左上 右上 右下 左下;
上手く活用すれば、こんな感じのタブっぽいものが作れたりします。

水平方向、垂直方向の丸みを調整する

水平方向と垂直方向で別々の値をセットするには /(スラッシュ)を使います。
border-radius: 100% / 50%(水平/垂直);
これも角ごとに設定、及び省略した記述が可能です。
border-radius: 100% 50% 100% 25% / 25% 100% 50% 100%(水平/垂直);

ベンダープレフィックスについて

個人的に、border-radiusにベンダープレフィックスはいらないと思っています。
最新のFirefoxやChrome、IE9~10等のブラウザは、既にベンダープレフィックス無しのborder-radiusに対応しています。 それどころか、ベンダー(略)付きだと認識されません。

また、IE8等のレガシーブラウザだとborder-radiusが効きませんが、別に角が丸かろうが尖ってようが使い勝手に支障は無いのでスルー。
どうしても気になる人は「CSS3PIE」とか使えばいいんじゃないかな。

以上、管理人@LeoTiger_7の備忘録でした。
関連するかもしれない記事