1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IE9以上で背景画像とグラデーションを同じ要素に指定

Last updated at Posted at 2015-12-17

グラデーションと背景画像を同じ要素に指定したい場合、IE10以上と他のモダンブラウザの指定方法は調べれば色々出てくるのですが、IE9も対応させる方法があまりなかったのでメモ代わりに。

やり方はIE9のグラデーションでよく見るfilterは使わずに、SVGを使います。

サンプル

/* IE9 */
background: url(images/dummy01.png) no-repeat top left, url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JjZWFmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);

/* Android4.1 - 4.3 */
background: url(images/dummy01.png) no-repeat top left, -webkit-linear-gradient(top,  #bceaff 0%,#ffffff 100%);

/* IE10+, FF16+, Chrome26+ */
background: url(images/dummy01.png) no-repeat top left, linear-gradient(to bottom,  #bceaff 0%,#ffffff 100%);

それぞれのブラウザに対応したソースを自分で書くのは大変ですが、下記サイトのように簡単に作成できるジェネレータがあるので、それを使えばSVGも含めて一括で生成してくれます。

サンプルの書き方だとIE8以下が対応できませんが、最近はIE8の対応はだいぶ無くなってきたので問題ないかと。

ちなみに、IE用のfilterでグラデーションをつけると何段階も色を変えるグラデーションは作れなかったり、border-radiusと一緒に使うと角丸が効かなかったりしましたが、SVGではどちらも反映されるのでIE9で苦労した方は是非一度試してみてください。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?