chocobit

html5テスト運用中

Search

div要素を増やさずに「角丸」を表現する

Web2.0的なデザインでよく使われるボックス四隅の角丸ですが、うちのサイトのような可変幅で表現しようとすると、無駄にdiv(もしくはspan)要素を増やさなければならなかったりします。

Javascriptで見せる方法もあるから、それを使えばソースに無駄はなくなるけど、個人的にはそれだけのためにJavascriptを使うのはどうも...てな感じだ。

ということで、今回はCSSだけで角丸をつくる方法を紹介。
(あ、四隅の画像はいりますよ。)

で、最初にことわっておくと、IEには対応してません。(7も)
「えーっ!?」と言われそうですが、Firefoxにはもちろん、IE以外のCSS2をサポートしたブラウザには対応してます。
なのでこの方法、「角丸でもよいが、まぁそうでなくてもよい」程度に思ってもらえればよいかと。

ではやり方です。

  1. まず四隅の画像を用意 角丸画像1 角丸画像2 角丸画像3 角丸画像4
  2. 角丸にしたいdiv要素を用意(幅は50%の可変幅に設定)

    これを角丸にしたいっ

  3. CSSを以下のように設定
    div#kadomaru {
       width: 50%;
       background-color: #572c00;
    }
    
    div#kadomaru:before {
       display: block;
       line-height: 0;
       content: url(top-left.gif);
       background: url(top-right.gif) no-repeat top right;
    }
    
    div#kadomaru:after {
       display: block;
       line-height: 0;
       content: url(bottom-left.gif);
       background: url(bottom-right.gif) no-repeat bottom right;
    }
      
  4. これだけで

    Firefoxでは角丸に!

これはCSSの「:before」「:after」疑似要素、「content」プロパティを使用して表現してます。

IE7さえ対応してくれれば、もっと積極的に使っていけるんだけど。
ブラウザのシェアを考えると、仕事では使えないですね...。

個人サイトではオススメ。うちもどこかに入れようと検討中です。

人気blogランキング

Tag

Message

Message

Trackbacks (0)

TrackBack URL

Page Top