Vendor Prefixleri neden var ?
CSS'de bazı tarayıcılarda deskteklenmeyen bazı şeyler için -moz-, -ms-, -webkit- gibi vendor prefixleri kullanıyoruz ama eğer tarayıcı vendor prefixlerini desteğini veriyorsa neden normal özelliğin desteğini de vermiyor. Örnek olarak
.element {
-webkit-transform: rotate(60deg);
-ms-transform: rotate(60deg);
-o-transform: rotate(60deg);
transform: rotate(60deg);
}
Şimdi biz bu kodu yazıyoruz ve diyelim ki chrome -webkit- olan versiyonu destekliyor. Peki chrome neden transform özelliğine destek vermiyor da -webkit-transform özelliğine bu desteği veriyor.
Web'e gelen bütün değişiklikler belli bir komiteden geçip belli bir spesifikasyona göre dokümante ediliyor. Bu işlemler uzun sürüyor ve
geliştirme sürecinde kayda değer API değişiklikleri yaşanıyor. Browser vendor'ları henüz tamamlanmamış deneysel özellikler için özelliği
prefix'liyorlar, ki asıl özellik deneyselden çıktığında spesifikasyon çakışması olmasın. Belli özellikler çok uzun süre tartışıldığı için
vendor prefix'li koda dependency oluşuyor. Browser'lar da tam olarak kaldıramıyorlar. Örneğin Chrome transform
özelliğini şu anda
destekliyor, ama web'i bozmamak için prefix'li bir property desteği de sağlıyor olabilir.