CSS3で背景色にグラデーションをつける

CSS

 状態:-  閲覧数:6,640  投稿日:2012-02-08  更新日:2013-04-03
CSS3で背景色にグラデーションをつける時は、IE用に背景を個別指定

メニュー背景にグラデーションを適用しているはずなのに、IEだとうまく適用されないことがある。
保険の意味で(IEで背景グラデーションが表示されない場合のことも考慮して)、cssで固定色も設定しておけばよいかも、と思ったのでメモ

Googleが提供しているHTML5.jsは、CSS3グラデーションとは無関係
CSS3はブラウザ依存。ブラウザがCSS3プロパティに対応していればHTML側はHTML4でもHTML5でもXHTML1.0でも可
IE9は、CSS3グラデーションに対応していない
「IE9」… SVG拡張子ファイル作成し、CSSで普通に指定 background-image: url("/○○.svg");
「IE6/7/8」… PIE.htc利用

導入時メモ

 閲覧数:822 投稿日:2012-02-08 更新日:2013-04-03

IEでは背景グラデーションが効かない


以前もやってしまったが、今回もミスっていたのでメモ。
それは、「IEでは背景グラデーションが効かない」、ということ。

<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

とか、
 <!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

とかで、IEにも適用されるかと思ったけど、それは別の話。


HTML5.jsって何?




「HTML5」と「CSS3」の違い

 閲覧数:870 投稿日:2012-02-08 更新日:2013-04-03
違いが分からないので、調べる。

HTML4でCSS3は利用可能ですか?

調べるまでは、「CSS3」って、「HTML5」じゃなきゃ使えない、と思い込んでいたので、ちょっとショックだった。ブラウザ依存なのか…。

というわけで、本題に戻ると、
背景グラデーションを利用するには、CSS3利用が必須。
しかし、IE8まで(?)はCSS3非対応。
IE9は、CSS3一部対応。

そのため、IEにCSS3を対応させるためのハック情報がネットに溢れている。

ここで勘違いしたのが、IE8対応ハックを利用すれば、当然、IE9にも対応されるだろう、という自分勝手な(?)思い込み。


■CSS3 PIE(PIE.htc)
デザクロ技術メモ(HP・CSS・SEO): CSS3 PIE(PIE.htc)が上手く動作しない際の注意点|デザインクロス〔山形県鶴岡市=庄内のホームページ制作会社|通称デザクロ〕
全部試すもIE9で反映されず。後で気付いたが、「Internet Explorer(6・7・8)」とは書かれていても、IE9とは一言も書かれていない。当然いけるでしょ? とこちらで勝手に思い込んでしまった…。

このサイトを見て、ようやく気が付いたよ。IE9はまた別なのか……
[CSS3]今から出来るIE対策 「影とグラデーション編」 | CreaMo!-クリーモ!-クリエイティブをMotto!集めるブログ


何故かIE9が出来ない!
私だけかもしれませんが、IE9だけグラデーションが効きません




■SVG拡張子ファイルを作成
【CSS3】IE9にCSS3のグラデーションを適用する | r-tgw.net:WEBの備忘録 – ブログ -
IE9用の背景グラデーション画像を自動生成する | r-tgw.net:WEBの備忘録 – ブログ -
半角スペースとかの関係でうまくいかなかったので、コピペは、下記SVGソースを利用
【レビュー】IE9でグラデーションを実現する方法 | エンタープライズ | マイナビニュース

出来た!

※うまくいかない時は、ブラウザで、.SVGファイルへ直接アクセスしてみればよいと思われ。うまくいっているときは、画像(?)が表示される

一応、SVGファイルについて調べる。
Scalable Vector Graphics - Wikipedia

ちなみに、作成したSVGファイルは、普通の画像閲覧ソフトでは、開けないみたい。


後は、グラデーション微調整を行い、終了。

出来たわ。
面倒くさいから、IEは固定色でいこうかと思ったけど、
いざ仕上げてみると、やっぱグラデーションはいいかも、と思ったので、これから利用することにしよう。

難しくはない。
ただただ、メンドクサイだけ。

だけど、一度出来てしまえば、次からは意外に簡単かもしれない……


divタグがdisplay:block;とかしても、ブロック要素にならないときは、

max-width: 100%の効果を打ち消すには、max-width: none;



週間人気ページランキング / 5-12 → 5-18
順位 ページタイトル抜粋 アクセス数
1 Design 0 7
2 RGBの種類 / ビットカラー | RGB(色) 4
2 「属性」「プロパティ」「アトリビュート」の違い | CSS 4
2 Chromeでmhtml保存を選択できなくなったので、拡張機能「Save Page State」を導入 | Chrome 拡張機能 4
3 HTMLエディタ カテゴリー 3
3 鉄道会社毎のカラーコード | カラーコード(色) 3
3 ICCプロファイル | カラーマネージメント(色) 3
3 CSS 「id」「class」名 に関する調査履歴 1 | 命名規則(コーディングルール) 3
3 textareaのスクロールバーが横へはみ出す場合は、「box-sizing:border-box;」を指定する | CSS 3
3 金融機関ブランドカラー / コーポレートカラー | カラーコード(色) 3
3 HSV → RGB 計算方式の違い | 色変換(色) 3
3 アイコン | 3系(Bootstrap) 3
3 ドロワーメニューが表示されない理由 | モバイルデザイン(デザイン) 3
4 CSS カテゴリー 2
4 「position:sticky;」がどうしても効かない →
を一旦削除してみる →
に「display:inline;」を指定 | CSSトラブル対応(CSS)
2
4 「Chrome拡張機能」開発中に遭遇したエラー | Chrome 拡張機能 2
4 RGB ⇔ Lab | 色変換(色) 2
4 画像縦横比の問題 | 画像 2
4 画像大きさ | 他サイト調査(HTML) 2
4 「Google Chrome」を再起動するためには「chrome://restart」へアクセスします。 | Google Chrome(ブラウザ) 2
2026/5/19 5:05 更新