Els prefixos del proveïdor de CSS, també coneguts de vegades com a prefixos del cercador CSS, són una manera perquè els fabricants d'exploradors afegeixin compatibilitat amb les noves característiques de CSS abans que aquestes funcions estiguin plenament compatibles en tots els navegadors. Això es pot fer durant un període de proves i experimentació on el fabricant del navegador determina exactament com es implementaran aquestes noves característiques de CSS. Aquests prefixos es van fer molt populars amb l'augment de CSS3 fa uns anys.
Quan es va començar a introduir el CCS3, diverses propietats emocionades van començar a colpejar diferents navegadors en diferents moments. Per exemple, els navegadors amb Webkit (Safari i Chrome) van ser els primers a introduir algunes de les propietats d'estil d'animació com transformar i transició. Mitjançant l'ús de propietats prefixades per a proveïdors, els dissenyadors web van poder utilitzar aquestes noves funcions en el seu treball i fer-les veure als navegadors que els recolzaven immediatament, en comptes d'haver d'esperar que tots els fabricants del navegador tornin a posar-se al dia!
Així, des del punt de vista d'un desenvolupador web de front-end, els prefixos del navegador s'utilitzen per afegir noves característiques de CSS a un lloc i tenir confort sabent que els navegadors donaran suport a aquests estils. Això pot ser especialment útil quan els fabricants de cercadors diferents implementen propietats d'una manera lleugerament diferent o amb una sintaxi diferent.
Els prefixos del navegador CSS que podeu utilitzar (cadascun dels quals és específic d'un navegador diferent) són:
- Android:
-webkit-
- Chrome:
-webkit-
- Firefox:
-moz-
- Internet Explorer:
-Senyora-
- iOS:
-webkit-
- Òpera:
-o-
- Safari:
-webkit-
En la majoria dels casos, per utilitzar una propietat d'estil CSS nova, agafeu la propietat CSS estàndard i afegiu el prefix per a cada navegador. Les versions prefixades sempre vindrien primer (en qualsevol ordre que preferiu) mentre que la propietat CSS normal arribarà per última vegada. Per exemple, si voleu afegir una transició CSS3 al vostre document, usareu el
transició
propietat tal com es mostra a continuació:
-webkit- transició: totes 4s facilitat; -moz- transició: totes 4s facilitat; -Senyora- transició: totes 4s facilitat; -o- transició: totes 4s facilitat;transició: totes 4s facilitat; Nota: Recordeu que alguns navegadors tenen una sintaxi diferent per a determinades propietats que altres, de manera que no assumeixi que la versió prefixada d'un propietari sigui exactament igual a la propietat estàndard. Per exemple, per crear un degradat CSS, utilitzeu el gradient lineal propietat. Firefox, Opera i versions modernes de Chrome i Safari utilitzen aquesta propietat amb el prefix adequat mentre que les primeres versions de Chrome i Safari utilitzen la propietat prefixada -webkit-gradient . A més, Firefox utilitza diferents valors que els estàndards. La raó per la qual sempre acabeu la vostra declaració amb la versió normal i no prefixada de la propietat CSS és perquè quan un navegador admeti la regla, usarà aquella. Recordeu com es llegeix CSS. Les regles posteriors prevalen sobre les anteriors si l'especificitat és la mateixa, de manera que un navegador llegeix la versió del proveïdor d'una regla i l'utilitza si no és compatible amb la normal, però una vegada que ho fa, anul·larà la versió del proveïdor amb la regla CSS real. Quan els primers prefixos del proveïdor es van introduir per primera vegada, molts professionals de la xarxa es van preguntar si eren un hack o un canvi de tornada als foscos dies de forking del codi d'un lloc web per a suportar diferents navegadors (recordeu aquells " Aquest lloc es veu millor a IE "missatges). Els prefixos de proveïdors de CSS no són hacks, però, i no hauríeu de tenir cap reserva per utilitzar-los al vostre treball. Un pirateig CSS explica defectes en la implementació d'un altre element o propietat per tal que una altra propietat funcioni correctament. Per exemple, el model de caixa model ha explotat defectes en l 'anàlisi del veu-família o en com els navegadors analitzen barres inverses ( ). Però aquests hacks es van utilitzar per solucionar el problema de la diferència entre com Internet Explorer 5.5 va manejar el model de caixa i com Netscape ho va interpretar i no tenia res a veure amb l'estil de la família de veu. Afortunadament, aquests dos navegadors obsolets són els que no ens preocupen aquests dies. Un prefix de proveïdor no és un hack perquè permet que l'especificació estableixi regles sobre com es pot implementar una propietat, alhora que permet als fabricants d'exploradors implementar una propietat d'una manera diferent sense trencar la resta. A més, aquests prefixos estan treballant amb propietats CSS que eventualment serà una part de l'especificació . Simplement afegim un codi per obtenir accés a la propietat abans d'hora. Aquesta és una altra raó per la qual finalitzeu la norma CSS amb la propietat normal i no prefixada. D'aquesta manera, podeu deixar anar les versions prefixades un cop s'aconsegueix un suport complet del navegador. Vols saber què és el suport del navegador per a una determinada funció? El lloc web CanIUse.com és un meravellós recurs per recollir aquesta informació i fer-vos saber quins navegadors i quines versions d'aquests navegadors actualment admeten una funció. Sí, podria ser molest i repetitiu haver d'escriure les propietats 2-5 vegades per aconseguir que funcioni en tots els navegadors, però és una situació temporal. Per exemple, fa uns pocs anys, per establir una cantonada arrodonida en una caixa, heu d'escriure: -moz-border-radius: 10px 5px;-webkit-border-top-left-radius: 10px;-webkit-border-top-right-radius: 5px;-webkit-border-bottom-right-radius: 10px;-webkit-border-bottom-left-radius: 5px;límit de radi: 10px 5px; Però ara que els navegadors han respost completament amb aquesta funció, realment només necessiteu la versió estandarditzada: límit de radi: 10px 5px; Chrome ha donat suport a la propietat CSS3 des de la versió 5.0, el Firefox l'ha afegit a la versió 4.0, Safari l'ha afegit a 5.0, Opera a 10.5, a iOS a 4.0 i a Android 2.1. Fins i tot Internet Explorer 9 ho admet sense un prefix (i IE 8 i inferior no ho admeten amb o sense prefixos). Recordeu que els navegadors sempre estaran canviant i es requeriran enfocaments creatius per a la compatibilitat amb navegadors antics, tret que estigueu planejant crear pàgines web que estan darrere dels mètodes més moderns. Al final, escriure prefixos del navegador és molt més senzill que trobar i explotar errors que, probablement, es solucionaran en una versió futura, i requereixen que trobeu un altre error per explotar, etc. Els prefixos del venedor no són un hack
Els prefixos del venedor són molestos però temporals