CSSでグラデーションを実現する方法、主要ブラウザ全対応

    後藤大地  [2010/02/17]

    Robert’s talk

    Firefox 3.6 / Gecko 1.9.2のCSSにはグラデーション機能が実装されている。この機能を利用すると背景のみならず要素ごとにグラデーションをかけることが可能になり、画像を使うことなく手軽に美しいUIを実現することができる。

    グラデーション実装はFirefox以外のブラウザでも実現されている。Operaはまだ正式サポートしていないが、近いうちにサポートが実現するとみられる。IEではIE 5.5のころからサポートしており、WebKitを採用しているChromeとSafariでもサポートされている。IE8から名前が変わっているが指定する内容は同じまま。

    CSSグラデーションは便利な機能だが、現状ではIE、Firefox、WebKit (Chrome、Safari)で指定方法が違うという状況にある。最終的にはFirefoxで実装された指定方法で一本化していくのではないかとみられるが、それまでは個々に対応する必要がある。

    Firefox 3.6 - CSS gradients for all web browsers, without using imagesサンプルのレンダリング例

    Chrome - CSS gradients for all web browsers, without using imagesサンプルのレンダリング例

    IE8 - CSS gradients for all web browsers, without using imagesサンプルのレンダリング例

    Safar4 - CSS gradients for all web browsers, without using imagesサンプルのレンダリング例

    Opera 10.5 - CSS gradients for all web browsers, without using imagesサンプルのレンダリング例

    Robert Nyman氏がCSS gradients for all web browsers, without using images - Robert's talkにおいて、IE5.5-7、IE8、Firefox 3.6、Safari4、Chromeのそれぞれで同じグラデーションをレンダリングするためのCSSのサンプルを公開している。ブラウザごとにどのように指定が違っているのか比較できて参考になる。CSS gradients for all web browsers, without using images - Robert's talkに掲載されているサンプルをそのままためせるようにまとめたものを次に掲載しておく。

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html lang="ja">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>グラデーションデモ</title>
    <style type="text/css">
    #gradient {
      color: #fff;
      height: 100px;
      padding: 10px;
      /* For WebKit (Safari, Google Chrome etc) */
      background: -webkit-gradient(linear, left top, left bottom, from(#00f), to(#fff));
      /* For Mozilla/Gecko (Firefox etc) */
      background: -moz-linear-gradient(top, #00f, #fff);
      /* For Internet Explorer 5.5 - 7 */
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#FF0000FF, endColorstr=#FFFFFFFF);
      /* For Internet Explorer 8 */
      -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#FF0000FF, endColorstr=#FFFFFFFF)";
    }
    </style>
    </head>
    <body>
    <div id="gradient">
    グラデーション
    </div>
    </body>
    </html>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html lang="ja">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>グラデーションデモ</title>
    <style type="text/css">
    #gradient-with-stop {
      color: #fff;
      height: 100px;
      padding: 10px;
      /* For WebKit (Safari, Google Chrome etc) */
      background: -webkit-gradient(linear, left top, right top, from(#00f), to(#fff), color-stop(0.7, #fff));
      /* For Mozilla/Gecko (Firefox etc) */
      background: -moz-linear-gradient(left top, #00f, #fff 70%);
      /* For Internet Explorer 5.5 - 7 */
      filter: progid:DXImageTransform.Microsoft.gradient(startColorStr=#FF0000FF, endColorStr=#FFFFFFFF, GradientType=1);
      /* For Internet Explorer 8 */
      -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#FF0000FF, endColorstr=#FFFFFFFF, GradientType=1)";
    }
    </style>
    </head>
    <body>
    <div id="gradient-with-stop">
    グラデーション
    </div>
    </body>
    </html>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html lang="ja">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>グラデーションデモ</title>
    <style type="text/css">
    #gradient-radial {
      color: #fff;
      width: 100px;
      height: 100px;
      padding: 10px;
      /* For WebKit (Safari, Google Chrome etc) */
      background: -webkit-gradient(radial, 40% 40%, 0, 40% 40%, 60, from(#ffffa2), to(#00f));
      /* For Mozilla/Gecko (Firefox etc) */
      background: -moz-radial-gradient(40% 40%, farthest-side, #ffffa2, #00f);
      /* For Internet Explorer */
      /* As if... */
    }
    </style>
    </head>
    <body>
    <div id="gradient-radial">
    グラデーション
    </div>
    </body>
    </html>
    

    関連記事

    関連サイト

    関連したタグ

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン