そのベンダー接頭辞はいつまで書くの?
公開:
更新:
ベンダー接頭辞(プレフィックス)については最近いろいろと議論が活発ですが、そういう難しい話ではなくて、現状のCSSについての話です。
新しいCSSモジュールを使うために、ブラウザごとに接頭辞をつけなくてはいけない場合があります。まあそれについては現状では仕方ないことなんですが、接頭辞なしでも動作するようになったものでも、いつまで経っても接頭辞つきのものを書くのはどうなのかなと思うわけです。
CSSのコードも冗長で読みづらくなりますし、もう使われていない(使われることもない)であろうものを残しておくのもちょっとなー。
実際に運用されているサイトなんかだとそうそう簡単に手を入れられないかもしれませんが……。
また、はてなダイアリーの方でも書きましたが、ブログのチュートリアルを見ていて「もうその接頭辞つきの役目は終わった(終わりつつある)のに、なんでそれしか書いてないの」と思うことが結構あります。どちらかというと実際に使われているコードよりこっちの方が気になっています。
対象ブラウザが広い場合には理由があるんだと分かりますが「CSS3で作る何とか!」みたいなタイトルで書かれていると、なんか、こう……。
実際に使われているものならともかく、チュートリアルとしてはどうなの、と思っちゃうわけです。
とりあえず、現状はどうなっているのか気になっているものを調べてみました。 When can I use CSS3 Border-radius? これはもう接頭辞いらないんじゃないでしょうか。 Firefox 3.6は先日サポートが切られましたし、書く必要ないと思います。 When can I use CSS3 Box-shadow? デスクトップブラウザ向けには接頭辞いらない感じですね。 When can I use CSS3 Box-sizing? WebkitはAndroidが4.0以降なのでモバイル向けにはまだ必要かと思いますが(対応機種がまだ少ないので)、デスクトップ向けには要らない気がします。 モバイル向けにはまだ それよりもつい最近見たチュートリアル記事で それに、CSSグラデーションの構文は今年の1月に新しくなりましたし、チュートリアル的なものには標準のコードとしてそっちも載せておいた方が親切ではないでしょうか。構文はまた変更されるかもしれませんが、そのときはそのときで対応すればいいだけです。 ちなみに、
それと、AndroidのOSバージョン別シェアは「Platform Versions」で見ることができます。日本のシェアとは違うでしょうが……。border-radius
-[webkit/moz]-border-radius
border-radius
Webkitで必要になるのはAndroid 2.1向けだけのような状態ですが(iOSの人はアップデートしてるでしょうし)、上記のAndroidバージョン別シェア(2012年5月1日版)では5.5%しかありません。国内ではもう少し多いでしょうが、2.1が出てから2年近く経ってますし、どんどん減ってくると思います。
まあまだ3.6相当なLunascape GeckoとSleipnir Geckoもサポートしたいという方は書けばいいんじゃないでしょうか。
(追記:2012年06月28日リリースのSleipnir 3.5でGeckoのサポートは終了しました)box-shadow
-[webkit/moz]-box-shadow
box-shadow
WebkitはiOSが微妙なところですが、Android 4.0でも接頭辞が必要なのでモバイル向けには書いたほうがいいかもしれません。
実務はともかく、チュートリアルなんかでは接頭辞ありは補足的な扱いで十分な気がします。box-sizing
-[webkit/moz]-box-sizing
box-sizing
Firefoxは現行の12.0でも接頭辞が必要です。WebkitのCSS グラデーション
-webkit-gradient([linear/radial], ...)
-webkit-[linear/radial]-gradient()
-webkit-gradient()
な感じですが、デスクトップ向けには-webkit-[linear/radial]-gradient()
でいい気がします。-webkit-gradient()
しか書かれていないのを見て、もう流石にそれはどうなの、と思ったわけです。これを書こうと思ったきっかけでもありますが。to
キーワードはFirefoxとOperaが既にサポートし始めています。
現状でも他にもあるとは思いますが、とりあえずこんなところで。
こういったことはこれからどんどん増えてくると思います。
昔の記事にあるコードも全部書き直せとまでは思いませんが、ときどきでもブラウザのサポート状況を見てから記事に書くコードを考えてみてはどうでしょう。
まあ対応ブラウザによって接頭辞を書く書かないは違ってくるでしょうし、どう書こうが人の勝手なんですが、こういう普段使いのスニペット的なものはたまにはアップデートしたほうがいいんじゃないかな、という話でした。
どうでもいいですが、このブログでは最近は記事内にはできるだけ接頭辞を書かないようにしてます。
接頭辞なんかなくても大丈夫な日が来たときでも記事の読みやすさが保たれるかもな、と考えてのことです。
それと、本当はベンダー接頭辞なんて書きたくないと思っているからです。面倒くさいし読みづらいし長くなるし……。