درباره این ابزار
کوچک سازی CSS فضاهای خالی، نظرات و کاراکترهای غیر ضروری را از یک stylesheet حذف می کند تا اندازه آن را قبل از ارائه به مرورگرها کاهش دهد. قوانین واقعی بدون تغییر هستند: یک شیوه نامه کوچک شده، صفحات را به صورت یکسان با منبع کوچک نشده ارائه می کند. صرفه جویی از حذف خطوط جدید، نیم ویرگول های اضافی، نظرات، فرصت های کوتاه نویسی شش رنگ و میانبرهای صفر واحد (به جای 0 پیکسل با 0) حاصل می شود.
در وبسایتهای مدرن با دهها قانون سبک، کاهش معمولی 20 تا 40 درصد در مقایسه با منبع نامشخص است. در ترکیب با فشردهسازی gzip در سرور، پسانداز حاشیهای کاهش مییابد - gzip قبلاً متن تکراری را به طور مؤثر فشرده میکند - اما این ترکیب هنوز هم فشردهسازی را به تنهایی شکست میدهد، بهویژه زمانی که شیوه نامهها در حافظه پنهان ذخیره میشوند و بارها به بسیاری از بازدیدکنندگان ارائه میشوند.
این مینیفایر CSS را در یک پاس پردازش میکند، نظرات خارج از مقادیر url() را حذف میکند، فضای سفید را جمع میکند، نیمویرگولهای اضافی را قبل از بستن پرانتزها حذف میکند، از کوتاهنویسی صفر واحد استفاده میکند و رنگهای شش رقمی شش رقمی را در صورت امکان به شکل سه رقمی تبدیل میکند (#ffffff → #fff). خروجی CSS معتبر باقی می ماند که هر مرورگری به درستی آن را تجزیه می کند.
چرا CSS را کوچک کنیم؟
فایلهای کوچکتر CSS سریعتر بارگیری میشوند و زمان مسدود کردن رندر کاهش مییابد، که هر دو امتیازات First Contentful Paint و Largest Contentful Paint را بهبود میبخشند. برای سایتهایی که Core Web Vitals بر رتبهبندی جستجو تأثیر میگذارد، هر کیلوبایت CSS مسدودکننده رندر، ارزش تلاش را دارد.
هزینه های پهنای باند نیز در مقیاس مهم هستند. سایتهایی که میلیونها بازدید از صفحه را ارائه میکنند، زمانی که شیوه نامههایشان 30 درصد کوچکتر باشد، مقدار قابلتوجهی از خروج را ذخیره میکنند. صورتحسابهای CDN، استفاده از داده تلفن همراه و مصرف انرژی همگی سود کمی دارند. Minification اساسا رایگان است - یک مرحله ساخت یکباره بدون هزینه نگهداری.
جزئیات فنی
کوچک سازی CSS عمدتاً حذف فضای سفید محافظه کارانه است. فضای خالی در انتخابگرها، اعلانها و مقادیر در جایی که قابل توجه است حفظ میشود. فضای خالی بیرون جمع شده است. نظرات حذف می شوند مگر اینکه با /* شروع شوند! (نظرات حفظ مجوز).
میانبرهای رایج: 0px، 0em و مقادیر مشابه صفر واحد تبدیل به 0 می شوند. رنگ های شش رقمی شش رقمی با ارقام جفت شده (#ffffff، #336699) سه رقمی می شوند (#fff، #369). آخرین نقطه ویرگول قبل از } حذف می شود. نام رنگ ها به طور خودکار به هگز تبدیل نمی شوند زیرا هگز گاهی طولانی تر است (طول قرمز از #f00 کوتاه تر است؛ #ff0000 بلندتر از قرمز است).
خروجی باید از هر اعتبارسنجی CSS که ورودی را می پذیرد، عبور دهد. پشتیبانی مرورگر بدون تغییر است - کوچکسازی خود قوانین را تغییر نمیدهد، فقط نمایش متنی آنها را تغییر میدهد.
سوالات متداول
- کوچک سازی CSS چه چیزی را حذف می کند؟
- فضای خالی (فضاها، برگه ها، خطوط جدید)، نظرات (/* ... */)، نیم ویرگول های غیر ضروری، صفرهای اضافی (0.5 → 0.5)، بهینه سازی های کوتاه (#ffffff → #fff) و واحدهای اضافی (0px → 0).
- آیا استفاده از CSS مینی شده در تولید بی خطر است؟
- بله. Minification تمام قوانین CSS، انتخابگرها و مقادیر ویژگی را حفظ می کند. خروجی از نظر عملکردی یکسان است - مرورگرها آن را دقیقاً به همان روش تفسیر می کنند. این یک روش استاندارد برای همه وب سایت های تولیدی است.
- چقدر باید انتظار کاهش سایز داشته باشم؟
- معمولا 20-50٪ برای CSS خوب نوشته شده است. کدهایی که به شدت نظر داده شده با قالب بندی پرمخاطب کاهش های بزرگتری را مشاهده می کنند. CSS از قبل فشرده ممکن است فقط 10-15٪ کوچک شود.
- اگر از gzip استفاده می کنم باید CSS را کوچک کنم؟
- بله، هر دو. Gzip الگوهای تکراری را فشرده می کند، در حالی که کوچک سازی کاراکترهای غیر ضروری را حذف می کند. آنها با هم فشرده سازی بهتری نسبت به هر یک به تنهایی ارائه می دهند. CSS Minified + gzipped معمولاً 85-95٪ کوچکتر از نسخه اصلی است.
- آیا باید همیشه کوچک کنم؟
- برای تولید بله. برای فایلهای منبع توسعه، نه - CSS قابل خواندن برای نگهداری ضروری است. Minification را در زمان ساخت اجرا کنید، نه در زمان ویرایش.
- آیا CSS من روی سرور آپلود می شود؟
- خیر. Minifier در مرورگر شما اجرا می شود.
- این چگونه با cssnano یا csso مقایسه می شود؟
- cssnano و csso پلاگین های PostCSS برای ساخت های تولیدی هستند. آنها تحولات تهاجمی تری مانند ادغام قوانین اضافی را ارائه می دهند. این ابزار کوچک سازی اولیه را برای استفاده موقت بدون تنظیم ساخت پوشش می دهد.
- آیا کوچک سازی نقشه های منبع را خراب می کند؟
- کوچک سازی نقشه های منبع تولید نمی کند. این ابزار تنها خروجی کمینه تولید می کند. برای اشکالزدایی حداقل CSS در تولید، نقشههای منبع را به عنوان بخشی از ساخت خود ایجاد کنید.