4.10.4g. CSSグラデーションを使う際の古いブラウザ対応

ブラウザによってサポートが異なる、グラデーションなどのCSSプロパティを使う際は注意が必要です。

古いブラウザに対応したCSS

グラデーションをサポートしていないブラウザ向けの指定をしないと、背景色が指定されていないことになり、以下のように文字を白に指定している場合など、文字が読めなくなってしまいます。以下のCSSでは、Chrome 10以上、Safari 5.1以上ではグラデーションが表示されますが、それ以外は古いブラウザ向けに指定した背景色が表示されます。

                            .gradation {
                              color: #fff;
                              background: #1e5799; /* 古いブラウザ向け */
                              background: -webkit-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); /* Chrome10+,Safari5.1+ */
                            }
                            

結果

グラデーションのテスト

古いブラウザ向けCSSがない場合

たとえばIE9で閲覧すると、背景が表示されなくなり、文字が読めなくなってしまいます。

                            .gradation-no-ie {
                              color: #fff;
                              background: -webkit-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); /* Chrome10+,Safari5.1+ */
                            }
                            

結果

グラデーションのテスト

各種ブラウザを網羅したグラデーションCSS

たとえばFirefoxやIE6+でもグラデーションを表示させる場合のCSS。Ultimate CSS Gradient Generatorというツールを使ってCSSを書き出しました。

                          .gradation-all {
                            color: #fff;
                            background: #1e5799; /* Old browsers */
                            background: -moz-linear-gradient(top,  #1e5799 0%, #7db9e8 100%); /* FF3.6+ */
                            background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#1e5799), color-stop(100%,#7db9e8)); /* Chrome,Safari4+ */
                            background: -webkit-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); /* Chrome10+,Safari5.1+ */
                            background: -o-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); /* Opera 11.10+ */
                            background: -ms-linear-gradient(top,  #1e5799 0%,#7db9e8 100%); /* IE10+ */
                            background: linear-gradient(to bottom,  #1e5799 0%,#7db9e8 100%); /* W3C */
                            filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 ); /* IE6-9 */
                          }
                          

結果

グラデーションのテスト