#どうも7noteです。iphone特有の仕様(不具合)で、グラデーションが黒くなってしまう原因と対策方法を解説
iphoneで以下のようなグラデーションを指定します。
div {
background-image: linear-gradient(transparent, #FFF);
}
通常は白っぽいグラデーションになるはずです。
しかしiphoneなどのios端末で見ると、なぜか黒っぽいグラデーションになってしまいます。
グラデーションが黒っぽくなる原因
iphoneなどのios端末では**transparent
= rgba(0,0,0,0)
**と認識されてしまうようです。
そのため**「透明の黒 → 白」へのグラデーションになってしまい黒っぽさがでてしまう**ようです。
解決
解決方法は簡単で、transparent
を使わなければいいのです。
つまり、transparent
をrgba
に書き換えてしまいましょう。
/* ダメな例 */
div {
background-image: linear-gradient(transparent, #FFF);
}
/* 良い例 */
div {
background-image: linear-gradient(rgba(255,255,255,0), #FFF);
}
上のソースでは透明→白のグラデーションを作成したいので、もともとtransparent
を指定していた箇所をrgbaで書き直しました。
rgbで白を再現する場合はrgb(255,255,255)
になるので、これに透明度のaを足して**rgba(255,255,255,0)
と書くことで白いグラデーションをiphoneでも黒っぽくならずに済みます。**
まとめ
ios端末では**transparent
= rgba(0,0,0,0)
**と認識されてしまう。
なのでtransparent
は使わずグラデーションにしたい色のrgba()
に書き直して使う!
たとえば赤いグラデーションならtransparent
の代わりに、rgba(255,0,0,0)
を指定しましょう。
おそまつ!
~ Qiitaで毎日投稿中!! ~
【初心者向け】WEB制作のちょいテク詰め合わせ