Header Menu

角丸に関するあれこれ

Rounded Corner最近、というか Web2.0 的デザインなんてものが言われ始めてからというもの、「角丸」 ってやつがとっても人気ですね。(X)HTML、CSS 関連の話題でもよく取り上げられています。

ということで、角丸の作り方をいくつかの種類別に、また、数値などを入力するだけで、角丸のソースを生成してくれる角丸ジェネレータなどをいくつかまとめてみました。

角丸の作り方その1、画像を使う方法

ソースがどうこうとか、まったく気にしないで塗りつぶしの角丸ボックスを作るだけなら、4つの角に配置する画像を用意した上で、下記のような感じにすれば得に難しくもなく角丸完成と。しかもフレキシブル。しかしソース汚い。

<!--HTML-->
<div class="left-top">
 <div class="right-top">
  <div class="left-bottom">
   <div class="right-bottom">
    <p>テキストをここに入れる</p>
   </div>
  </div>
 </div>
</div>
/*--CSS--*/
* {
     margin:0;
     padding:0;
     }
div.left-top {
     with:200px; /*適当に調整*/
     background:url(/image/left-top-round.png) no-repeat left top #ccc; /*画像と同じ色を指定*/
     }
div.right-top {
     background:url(/image/right-top-round.png) no-repeat right top;
     }
div.left-bottom {
     background:url(/image/left-bottom-round.png) no-repeat left bottom;
     }
div.right-bottom {
     background:url(/image/right-bottom-round.png) no-repeat right bottom;
     }
p {
     padding:10px; /*適当に調整*/
     }

で、角丸画像を生成するのに、p o p * p o p さんで紹介されていた、Google の隠れ API なんかが便利かも。

角丸画像を瞬時に生成するGoogleの隠れAPI! : p o p * p o p

12/18 追記
上記で 「隠れ API」 として紹介されている機能は Google が正式に利用を認めているものではないので、積極的に利用をすすめるものではありません。

角丸の作り方その2、JavaScript を使う方法

JavaScript を使う場合は、下記のようなライブラリがあります。どれも画像は必要ありません。JavaScript なので、(X)HTML ソース自体はクリーンに保てます。でも、JavaScript が裏でやっているのは強烈なタグの入れ子によって無理やり角丸に見せるという力技。

これらについては、tech.nitoyon.com@hatena さんがそれぞれを比較しつつまとめられています。

角丸の作り方その3、PHP を使う方法

phpspot開発日誌さんで紹介されていた、「PhpMyBorder」 を使うという手もあるようです。PHP が利用できるならお手軽だし便利っぽい。

PHPで角丸枠(CSS)を簡単に作る方法 : phpspot開発日誌

角丸ジェネレータ

角丸用のソースや画像を生成してくれるツール。どちらも角のサイズやカラーなどを入力するだけ。「その1」 と同じようなソースを自動で作ってくれる感じ。

おまけ。CSS3 「border-radius」 プロパティを使う

CSS3 Backgrounds and Borders Module (Working Draft) では border-radius プロパティが定義されています。

div.round {
     border-radius:10px 15px 20px 5px;
     }

のように指定できます。

一番スマートな方法だと思いますが、残念ながら現在のところ対応しているブラウザを知りません。Gecko レンダリングエンジンを搭載したブラウザ (Firefoxなど) では border-radius のテスト実装として、「-moz-border-radius」 プロパティが実装されていますが、これは独自拡張なのであまりオススメできません。

さて、角丸ブームはいつまで続くのでしょうか、、

Add to Bookmarks
  • Hatenaブックマークに追加
  • del.icio.usに追加
  • POOKMARK Airlinesへ追加
  • livedoorクリップへ追加
  • ニフティクリップへ追加
  • Buzzurlにブックマーク
  • newsingへ投稿
  • Choixへ追加
  • Furlへ追加
  • Blinklistへ追加
  • Redditへ追加
Advertisement

comment & trackback

TRACKBACK URL : http://hyper-text.org/cms/mt-tb.cgi/313

trackback to this entry

CSSだけでスマートに角丸を作る方法

WWW WATCHさんの角丸に関するあれこれを見ていて、そういえば...

from hamashun.com blog, December 18, 2006 - 16:00.

comments

ゆう, December 18, 2006 - 01:29.

はじめまして!いつも興味深く拝読させていただいてます。

スマートな方法といえば、Safari 1.3 以降で対応した multiple background images という手段もありますよね。

http://www.w3.org/TR/css3-background/#layering

現状では Safari と Konqueror でしか効きませんので、実用には耐えませんけど、これをほかのブラウザが実装してくれると、角丸やドロップシャドウのために、論理的にナンセンスな div を、どれだけこの世から抹殺できることか...と切実に期待しているんですが、どこもなかなか腰が重いようで残念です。

WWW WATCH, December 18, 2006 - 10:46.

ゆうさんコメントありがとうございます。

なるほど、その手もありますね。情報ありがとうございます。

multiple background images なんかは角丸に限らず、とっても使えそうなプロパティですけど、まだ Working Draft 状態の CSS3 ですから、ブラウザの先行実装にあまり期待してもいけないのかもしれませんね。

undefined, December 18, 2006 - 18:20.

border-radiusはSafariの開発版であるWebKit NightlyBuildでは対応しているようです。
それはさておき、p o p * p o p さんのアレはHackであってAPIと呼ぶべきものではないので、このような形で紹介するべきではないように思います。

WWW WATCH, December 18, 2006 - 21:41.

undefined さんコメントありがとうございます。

> それはさておき、p o p * p o p さんのアレはHackであってAPIと呼ぶべきものではないので、このような形で紹介するべきではないように思います。

ご指摘感謝です。追記入れておきました。

post your comment

comment form

* All Fields Required.

RSS Feed
  • Add to Google Reader
  • Add to My Yahoo
  • Add to netvibes
  • Subscribe in NewsGator Online
  • Subscribe in livedoor Reader
  • Subscribe in Hatena RSS Reader
  • Subscribe in Bloglines
  • Feed Count by FeedBurner