Par šo rīku
CSS minifikācija no stila lapas noņem atstarpes, komentārus un nevajadzīgās rakstzīmes, lai samazinātu tās lielumu pirms rādīšanas pārlūkprogrammās. Faktiskie noteikumi nav mainīti: samazināta stila lapa atveido lapas identiski neminificētajam avotam. Ietaupījumi rodas, noņemot jaunās rindiņas, liekos semikolus, komentārus, heksakrāsu īsraksta iespējas un nulles vienības saīsnes (0 pikseļu aizstāšana ar 0).
Mūsdienīgās vietnēs ar desmitiem stila noteikumu tipiskais samazinājums ir 20–40%, salīdzinot ar neierobežotu avotu. Apvienojumā ar gzip saspiešanu serverī, minimālie ietaupījumi sarūk — gzip jau efektīvi saspiež atkārtotu tekstu, taču šī kombinācija joprojām pārspēj tikai saspiešanu, it īpaši, ja stila lapas tiek saglabātas kešatmiņā un daudzas reizes tiek rādītas daudziem apmeklētājiem.
Šis minifikators apstrādā CSS vienā piegājienā, noņemot komentārus ārpus url() vērtībām, sakļaujot atstarpes, noņemot liekos semikolus pirms iekavas aizvēršanas, izmantojot nulles vienību saīsinājumu un, ja iespējams, pārvēršot sešciparu heksadecimālās krāsas trīsciparu formās (#ffffff → #fff). Izvade joprojām ir derīga CSS, kuru jebkura pārlūkprogramma parsē pareizi.
Kāpēc samazināt CSS
Mazāki CSS faili tiek ielādēti ātrāk, un renderēšanas bloķēšanas laiks samazinās, tādējādi uzlabojot First Contentful Paint un Largest Contentful Paint rādītājus. Vietnēs, kurās Core Web Vitals ietekmē meklēšanas ranžēšanu, katrs renderēšanu bloķējošais CSS kilobaits ir pūļu vērts.
Arī joslas platuma izmaksām ir nozīme. Vietnes, kas apkalpo miljoniem lapu skatījumu, ietaupa izmērāmu daudzumu izejas, ja to stila lapas ir par 30% mazākas. CDN rēķini, mobilo datu lietojums un enerģijas patēriņš sniedz nelielu labumu. Minifikācija būtībā ir bez maksas — vienreizējs izveides solis bez uzturēšanas izmaksām.
Tehniskās detaļas
CSS samazināšana galvenokārt ir konservatīva atstarpju noņemšana. Atzīmētāju, deklarāciju un vērtību iekšpusē tiek saglabāta atstarpe, kur tas ir svarīgi; laukums ārpusē ir sakļauts. Komentāri tiek noņemti, ja vien tie nesākas ar /*! (licences saglabāšanas komentāri).
Izplatītākie īsinājumtaustiņi: 0px, 0em un līdzīgas nulles vienības vērtības kļūst par 0; sešciparu hex krāsas ar pārī savienotiem cipariem (#ffffff, #336699) kļūst par trīsciparu (#fff, #369); tiek noņemts pēdējais semikols pirms }. Krāsu nosaukumi netiek automātiski pārveidoti par heksadecimitāti, jo dažkārt hex ir garāks (sarkans ir īsāks par #f00; #ff0000 ir garāks par sarkano).
Izvadei ir jānokārto jebkurš CSS pārbaudītājs, kas pieņem ievadi. Pārlūkprogrammas atbalsts nemainās — minimizēšana nemaina pašus noteikumus, tikai to teksta attēlojumu.
Bieži uzdotie jautājumi
- Ko noņem CSS minifikācija?
- Atstarpes (atstarpes, tabulēšanas zīmes, jaunās rindiņas), komentāri (/* ... */), nevajadzīgi semikoli, liekas nulles (0,5 → .5), īsraksta optimizācijas (#ffffff → #fff) un liekas vienības (0 pikseļi → 0).
- Vai samazināto CSS ir droši izmantot ražošanā?
- Jā. Minifikācija saglabā visus CSS noteikumus, atlasītājus un rekvizītu vērtības. Izvade ir funkcionāli identiska — pārlūkprogrammas to interpretē tieši tāpat. Tā ir standarta prakse visām ražošanas vietnēm.
- Cik lielu izmēra samazinājumu man vajadzētu sagaidīt?
- Parasti 20–50% labi uzrakstītam CSS. Spēcīgi komentētam kodam ar detalizētu formatējumu ir lielāks samazinājums. Jau kompaktais CSS var sarukt tikai par 10–15%.
- Vai man vajadzētu samazināt CSS, ja izmantoju gzip?
- Jā, abi. Gzip saspiež atkārtotus modeļus, savukārt samazināšana noņem nevajadzīgās rakstzīmes. Kopā tie nodrošina labāku kompresiju nekā katrs atsevišķi. Samazināts + gzip CSS parasti ir par 85–95% mazāks nekā oriģināls.
- Vai man vienmēr vajadzētu samazināt?
- Ražošanai jā. Izstrādes avota failiem nē — lasāms CSS ir būtisks uzturēšanai. Palaidiet samazināšanu izveides laikā, nevis rediģēšanas laikā.
- Vai mans CSS ir augšupielādēts serverī?
- Nē. Minētais darbojas jūsu pārlūkprogrammā.
- Kā to var salīdzināt ar cssnano vai csso?
- cssnano un csso ir PostCSS spraudņi ražošanas būvēšanai; tie piedāvā agresīvākas transformācijas, piemēram, lieko noteikumu apvienošanu. Šis rīks aptver pamata samazināšanu ad hoc lietošanai bez būvēšanas iestatīšanas.
- Vai minimizēšana sabojā avotu kartes?
- Minifikācija neģenerē avota kartes; šis rīks rada tikai minimālu izvadi. Lai ražošanas procesā atkļūdotu samazinātu CSS, ģenerējiet avota kartes kā daļu no savas versijas.