CSS tiekėjo priešdėliai, taip pat kartais vadinami arba CSS naršyklės prefiksai yra būdas naršyklių kūrėjams pridėti palaikymą naujos CSS funkcijos kol šios funkcijos nėra visiškai palaikomos visose naršyklėse. Tai gali būti padaryta tam tikru bandymų ir eksperimentų laikotarpiu, kai naršyklės gamintojas tiksliai nustato, kaip bus įgyvendinamos šios naujos CSS funkcijos. Šie priešdėliai labai išpopuliarėjo CSS3 prieš keletą metų.

Tiekėjo priešdėlių kilmė
Kai pirmą kartą buvo pristatyta CCS3, įvairios sujaudintos savybės skirtingais laikais pradėjo rodyti skirtingas naršykles. Pavyzdžiui, „Webkit“ valdomos naršyklės („Safari“ ir „Chrome“) buvo pirmosios, kurios pristatė kai kurias animacijos stiliaus ypatybes, tokias kaip transformacija ir perėjimas. Naudojant pardavėjo priešdėlį savybės, interneto dizaineriai galėjo naudoti tas naujas funkcijas savo darbe ir pamatyti jas naršyklėse kad juos iškart palaikė, užuot laukę, kol visi kiti naršyklės gamintojai sulauks aukštyn!
Bendrieji priešdėliai
Taigi, žiūrint iš išorės žiniatinklio kūrėjo perspektyvos, naršyklės priešdėliai naudojami naujoms CSS funkcijoms įtraukti į svetainę, tuo pat metu jaukiai žinant, kad naršyklės palaikys tuos stilius. Tai gali būti ypač naudinga, kai skirtingi naršyklių gamintojai ypatybes įgyvendina šiek tiek kitaip arba su skirtinga sintakse.
CSS naršyklės priešdėliai, kuriuos galite naudoti (kiekvienas iš jų būdingas skirtingai naršyklei), yra šie:
- „Android“:
internetinis rinkinys
- „Chrome“:
internetinis rinkinys
- „Firefox“:
-moz-
- Internet Explorer:
-ms-
- „iOS“:
internetinis rinkinys
- Opera:
-o-
- „Safari“:
internetinis rinkinys
Įvedamas priešdėlis
Daugeliu atvejų, norint naudoti visiškai naują CSS stiliaus ypatybę, paimkite standartinę CSS ypatybę ir pridėkite kiekvienos naršyklės priešdėlį. Priešdėlių versijos visada bus pirmos (bet kokia pageidaujama tvarka), o įprasta CSS ypatybė bus paskutinė. Pvz., Jei norite prie dokumento pridėti CSS3 perėjimą, naudokite perėjimo ypatybę, kaip parodyta žemiau:
-webkit-perėjimas: visi 4-ieji palengvėja;
-moz-perėjimas: visi 4-ieji palengvėja;
-ms-perėjimas: visi 4-ieji palengvėja;
-perėjimas: visi 4-ieji palengvėja;
perėjimas: visi 4-eri palengvėja;
Atminkite, kad kai kuriose naršyklėse tam tikrų ypatybių sintaksė skiriasi nuo kitų, todėl nemanykite, kad naršyklės prefiksų savybės versija yra visiškai tokia pati kaip standartinės ypatybės. Pavyzdžiui, norėdami sukurti CSS gradientą, naudokite ypatybę tiesinis gradientas. „Firefox“, „Opera“ ir modernios „Chrome“ ir „Safari“ versijos naudoja tą nuosavybę su atitinkamu priešdėliu, o ankstesnėse „Chrome“ ir „Safari“ versijose - priešdėlis nuosavybė -webkit-gradient.
Be to, „Firefox“ naudoja kitokias nei standartinės vertės.
Priežastis, dėl kurios jūs visada baigiate deklaraciją įprasta, be prefiksų ypatybės CSS versija, yra ta, kad kai naršyklė palaiko taisyklę, ji naudos tą. Prisiminkite, kaip skaitoma CSS. Vėlesnės taisyklės turi viršenybę prieš ankstesnes, jei specifiškumas yra tas pats, todėl naršyklė perskaitytų taisyklė ir naudokite, kad jei ji nepalaiko įprastos, bet kai tik tai padarys, ji pakeis pardavėjo versiją su faktine CSS taisyklė.
Tiekėjo prefiksai nėra įsilaužimai
Kai pirmą kartą buvo pristatyti pardavėjo priešdėliai, daugelis žiniatinklio specialistų domėjosi, ar tai buvo nulaužimas, ar grįžkite į tamsius laikus, kai svetainės kodas buvo išsišakotas, kad būtų palaikomos skirtingos naršyklės (atminkite tai "Ši svetainė geriausiai peržiūrima IE"pranešimas". Tačiau CSS tiekėjų priešdėliai nėra įsilaužimai, todėl neturėtumėte jokių abejonių dėl jų naudojimo savo darbe.
CSS įsilaužimas naudoja kito elemento ar nuosavybės įgyvendinimo trūkumus, kad kitas turtas veiktų teisingai. Pvz., Dėžutės modelio įsilaužimas išnaudojo trūkumus analizuojant balso šeimą arba kaip naršyklės analizuoja atgalinį brūkšnį \. Tačiau šie įsilaužimai buvo naudojami norint išspręsti skirtumo tarp „Internet Explorer 5.5“ ir „langelio“ modelio problemos problemą „Netscape“ interpretavo ir neturėjo nieko bendro su balso šeimos stiliumi. Laimei, šios dvi pasenusios naršyklės yra šios, kuriomis šiomis dienomis neturime rūpintis.
Tiekėjo priešdėlis nėra įsilaužimas, nes jis leidžia specifikacijai nustatyti taisykles, kaip nuosavybė gali būti įgyvendinta, tuo pačiu leidžiant naršyklių kūrėjams įgyvendinti nuosavybę kitaip, nepažeidžiant visko Kitas. Be to, šie priešdėliai veikia su CSS ypatybėmis, kurios galiausiai bus specifikacijos dalis. Mes paprasčiausiai pridedame tam tikrą kodą, kad galėtume anksti pasiekti nuosavybę. Tai dar viena priežastis, kodėl nutraukiate CSS taisyklę įprasta, nepripažinta ypatybe. Tokiu būdu galite atsisakyti priešdėlių versijų, kai bus pasiektas visas naršyklės palaikymas.
Norite sužinoti, koks yra naršyklės palaikymas tam tikrai funkcijai? Tinklalapis CanIUse.com yra puikus šaltinis, skirtas rinkti šią informaciją ir pranešti, kurios naršyklės ir kurios tų naršyklių versijos šiuo metu palaiko šią funkciją.
Tiekėjo priešdėliai yra erzinantys, bet laikini
Taip, gali atrodyti erzinantis ir pasikartojantis atvejis, kai reikia 2–5 kartus rašyti ypatybes, kad jis veiktų visose naršyklėse, tačiau tai laikina situacija. Pavyzdžiui, prieš keletą metų norėdami užrašyti langelį suapvalintą kampą, turėjote parašyti:
-moz-border-radius: 10 taškų 5 taškų;
-webkit-border-top-left-radius: 10 taškų;
-webkit-border-top-right-radius: 5px;
-webkit-border-bottom-right-radius: 10 taškų;
-webkit-border-bottom-left-radius: 5px;
krašto spindulys: 10 taškų 5 taškų;
Bet dabar, kai naršyklės visiškai palaiko šią funkciją, jums tikrai reikia tik standartizuotos versijos:
krašto spindulys: 10 taškų 5 taškų;
„Chrome“ palaiko CSS3 nuosavybę nuo 5.0 versijos, „Firefox“ ją pridėjo 4.0 versijoje, „Safari“ pridėjo 5.0, „Opera“ - 10.5, „iOS“ - 4.0 ir „Android“ 2.1 versijoje. Net „Internet Explorer 9“ palaiko jį be priešdėlio (o IE 8 ir žemesnės versijos jo nepalaikė nei su, nei be priešdėliai).
Atminkite, kad naršyklės visada keičiasi ir, jei neplanuojate, reikės kūrybiško požiūrio į senesnių naršyklių palaikymą internetinių puslapių kūrimas metams atsilieka nuo moderniausių metodų. Galų gale rašyti naršyklės priešdėlius yra daug lengviau nei rasti ir panaudoti klaidas, kurios greičiausiai bus ištaisytos būsimoje versijoje, reikalaujančioms rasti dar vieną klaidą, kuria būtų galima pasinaudoti ir pan.