CSS3で採用されるプロパティを記述する際に、先行実装したブラウザ用としてベンダープレフィックス(プロパティに加える接頭辞)を使用することになります。主なブラウザ用は、「-webkit-」、「-moz-」、「-o-」、「-ms-」となり、これにベンダープレフィックス無しのものを加えて計5種類のCSSを記述することになります。機械的に書いていけばよいとはいえ、けっこう面倒な作業です。この煩わしさから解放してくれるのが、「prefixfree.js」です。これを利用すると、アクセスしてきたブラウザを判別して、それ用のベンダープレフィックスのみを、必要なプロパティ部分に自動で追加してくれます。
「prefixfree.js」をテストするため用意したのは、「HTML5で廃止された<marquee>タグのかわりにCSS3でマーキー」ページで使用したCSS3 animationで動くマーキーのサンプル3と同じものです。
次のソースはマーキーのCSSで、上側がすべてのブラウザ用のベンダープレフィックス付き、下側がベンダープレフィックスを省いたもので、実際にこのページに記載しているものです。どれだけ軽量になったかが一目で分かります。IEの動作は、CSS3自体に対応しているIE9からです。MacのSafariの場合は、4世代前のSafari4でも動きます。
.marquee p {
margin:0; padding-left:600px; display:inline-block; white-space:nowrap;
-webkit-animation-name:marquee; -webkit-animation-timing-function:linear;
-webkit-animation-duration:15s; -webkit-animation-iteration-count:infinite;
-moz-animation-name:marquee; -moz-animation-timing-function:linear;
-moz-animation-duration:15s; -moz-animation-iteration-count:infinite;
-ms-animation-name:marquee; -ms-animation-timing-function:linear;
-ms-animation-duration:15s; -ms-animation-iteration-count:infinite;
-o-animation-name:marquee; -o-animation-timing-function:linear;
-o-animation-duration:15s; -o-animation-iteration-count:infinite;
animation-name:marquee; animation-timing-function:linear;
animation-duration:15s; animation-iteration-count:infinite;
}
@-webkit-keyframes marquee {
from { -webkit-transform: translate(0%);}
99%,to { -webkit-transform: translate(-100%);}
}
@-moz-keyframes marquee {
from { -moz-transform: translate(0%);}
99%,to { -moz-transform: translate(-100%);}
}
@-ms-keyframes marquee {
from { -ms-transform: translate(0%);}
99%,to { -ms-transform: translate(-100%);}
}
@-o-keyframes marquee {
from { -o-transform: translate(0%);}
99%,to { -o-transform: translate(-100%);}
}
@keyframes marquee {
from { transform: translate(0%);}
99%,to { transform: translate(-100%);}
}
.marquee p {
margin:0; padding-left:600px; display:inline-block; white-space:nowrap;
animation-name:marquee; animation-timing-function:linear;
animation-duration:15s; animation-iteration-count:infinite;
}
@keyframes marquee {
from { transform: translate(0%);}
99%,to { transform: translate(-100%);}
}
BtoB WEB 受注システム 百万石・・・ 即行稼動!・・・ コスト削減・・・ 顧客満足度UP・・・ カスタマイズ可能・・・