За този инструмент
Минимизирането на CSS премахва интервали, коментари и ненужни знаци от таблица със стилове, за да намали размера й, преди да бъде сервирана в браузърите. Действителните правила са непроменени: минимизираният стилов лист изобразява страниците идентично с неминифицирания източник. Спестяванията идват от премахването на нови редове, излишни точки и запетая, коментари, възможности за стенограма с шестнадесетичен цвят и преки пътища с нулеви единици (замяна на 0px с 0).
В съвременните уебсайтове с десетки стилови правила типичното намаление е 20–40% спрямо неминимизирания източник. В комбинация с gzip компресия на сървъра, незначителните спестявания се свиват — gzip вече компресира повтарящия се текст ефективно — но комбинацията все още побеждава само компресията, особено когато таблиците със стилове се кешират и се сервират многократно на много посетители.
Този минификатор обработва CSS с едно преминаване, като премахва коментари извън стойностите на url(), свива интервали, премахва излишни точки и запетая преди затваряне на скоби, прилага стенограма с нулева единица и преобразува шестцифрени шестнадесетични цветове в трицифрена форма, където е възможно (#ffffff → #fff). Резултатът остава валиден CSS, който всеки браузър анализира правилно.
Защо да минимизирате CSS
По-малките CSS файлове се зареждат по-бързо и времето за блокиране на изобразяването намалява, като и двете подобряват резултатите за Първо боядисване на съдържание и Най-голямо рисуване на съдържание. За сайтове, където Core Web Vitals влияят върху класирането при търсене, всеки килобайт блокиращ изобразяването CSS обръснат си струва усилието.
Разходите за честотна лента също имат значение в мащаба. Сайтовете, които обслужват милиони показвания на страници, спестяват измерими количества изход, когато техните таблици със стилове са с 30% по-малки. Сметките за CDN, използването на мобилни данни и потреблението на енергия имат лека полза. Минимизирането е по същество безплатно — еднократна стъпка на изграждане без разходи за поддръжка.
Технически подробности
Минимизирането на CSS е най-вече консервативно премахване на бели интервали. Празното пространство в селекторите, декларациите и стойностите се запазва, когато е значително; бялото пространство отвън е свито. Коментарите се премахват, освен ако не започват с /*! (коментари за запазване на лиценза).
Често срещани преки пътища: 0px, 0em и подобни стойности с нулева единица стават 0; шестцифрените шестнадесетични цветове със сдвоени цифри (#ffffff, #336699) стават трицифрени (#fff, #369); последната точка и запетая преди } се премахва. Имената на цветовете не се преобразуват автоматично в шестнадесетичен, защото понякога шестнадесетичният е по-дълъг (червеното е по-късо от #f00 по дължина; #ff0000 е по-дълго от червеното).
Изходът трябва да премине всеки CSS валидатор, който приема входа. Поддръжката на браузъра е непроменена — минимизирането не променя самите правила, а само тяхното текстово представяне.
Често задавани въпроси
- Какво премахва CSS минимизирането?
- Празни интервали (интервали, табулатори, нови редове), коментари (/* ... */), ненужни точки и запетая, излишни нули (0,5 → .5), оптимизации на стенограма (#ffffff → #fff) и излишни единици (0px → 0).
- Безопасен ли е минимизираният CSS за използване в производството?
- да Минимизирането запазва всички CSS правила, селектори и стойности на свойства. Резултатът е функционално идентичен - браузърите го интерпретират по абсолютно същия начин. Това е стандартна практика за всички производствени уебсайтове.
- Колко намаляване на размера трябва да очаквам?
- Обикновено 20-50% за добре написан CSS. Heavily commented code with verbose formatting sees larger reductions. Вече компактният CSS може да се свие само с 10-15%.
- Трябва ли да минимизирам CSS, ако използвам gzip?
- Да и двете. Gzip компресира повтарящи се шаблони, докато минимизирането премахва ненужните знаци. Заедно те осигуряват по-добра компресия, отколкото всеки поотделно. Минимизираният + gzipped CSS обикновено е 85-95% по-малък от оригинала.
- Винаги ли трябва да минимизирам?
- За производство да. За изходните файлове за разработка нечетливият CSS е от съществено значение за поддръжката. Стартирайте минимизиране по време на изграждане, а не по време на редактиране.
- Моят CSS качен ли е на сървър?
- Не. Минификаторът работи във вашия браузър.
- Как се сравнява това с cssnano или csso?
- cssnano и csso са PostCSS добавки за производствени компилации; те предлагат по-агресивни трансформации като сливане на излишни правила. Този инструмент обхваща основно минимизиране за ad hoc използване без настройка на компилация.
- Минимизирането нарушава ли изходните карти?
- Минимизирането не генерира изходни карти; този инструмент произвежда само минимизиран изход. За да отстраните грешки в минимизирания CSS в производството, генерирайте карти на източника като част от вашата компилация.