CSS Minifier
ไฟล์ CSS ที่ย่อขนาดแล้วโหลดเร็วขึ้นอย่างเห็นได้ชัดเมื่อเทียบกับไฟล์ที่จัดรูปสวยงาม และความต่างนี้สะสมเพิ่มขึ้นทุกครั้งที่โหลดหน้า เครื่องมือนี้ตัดช่องว่าง คอมเมนต์ และอัฒภาคท้ายออก โดยไม่เปลี่ยน cascade หรือผลของกฎใด ๆ ผลลัพธ์เป็น CSS ที่ถูกต้องเสมอ ซึ่งเบราว์เซอร์แปลผลเหมือนต้นฉบับทุกประการ
วิธีย่อขนาด CSS
-
1
วาง CSS
CSS ใดก็ได้: เขียนด้วยมือ, คอมไพล์จาก Sass, บล็อกสไตล์แบบอินไลน์
-
2
ย่อขนาด
กด "Minify CSS" เพื่อตัดคอมเมนต์ ช่องว่าง และอัฒภาคท้ายในรอบเดียว
-
3
ดูการประหยัด
จำนวนไบต์ที่ประหยัดได้แสดงอยู่ข้างผลลัพธ์ที่บีบอัดแล้ว
-
4
คัดลอกผลลัพธ์
คัดลอก CSS ที่ย่อแล้วไปวางในบันเดิลโปรดักชัน หรือบันทึกเป็น `.min.css`
สิ่งที่ minifier ทำ
การแปลง (ไม่เปลี่ยนพฤติกรรมเลย):
- ตัดคอมเมนต์ทั้งหมด รวมถึงบล็อก
/*!ของ license - ตัดช่องว่างที่ไม่จำเป็น (ระหว่าง selector, การประกาศ, วงเล็บปีกกา)
- ลบอัฒภาคท้ายก่อนวงเล็บปีกกาปิด
- ยุบกฎหลายบรรทัดให้เป็นบรรทัดเดียว
ทำแค่นี้เอง จึงทำให้ผลลัพธ์ทำงานเหมือนต้นฉบับทุกประการ: selector, พร็อพเพอร์ตี และค่าทุกอย่างยังคงตามที่คุณเขียน
การประหยัดทั่วไป
| ต้นฉบับ | ขนาดเดิม | ขนาดหลังย่อ | ประหยัด |
|---|---|---|---|
| CSS เขียนมือจัดรูปสวยงาม | 20 KB | 12 KB | 40% |
| คอมไพล์จาก Sass โหมด dev | 45 KB | 25 KB | 44% |
| ย่อขนาดแล้ว + gzip | 10 KB | 10 KB | 0% |
นอกเหนือจากการย่อขนาด การบีบอัด gzip ที่เซิร์ฟเวอร์ยังประหยัดเพิ่มอีก 60-80% เพราะ CSS ซ้ำซ้อนสูง ทั้งสองวิธีซ้อนทับกันได้ ทำทั้งคู่เสมอ
สิ่งที่การย่อขนาดไม่ทำ
- ลบ CSS ที่ไม่ได้ใช้ นั่นเป็นเรื่องของ tree-shaking / PurgeCSS ซึ่งต้องวิเคราะห์ HTML หรือคอมโพเนนต์ของคุณ
- ย่อสีฐานสิบหก ยุบหน่วยศูนย์ หรือรวมการประกาศ การแปลงเชิงรุกเหล่านั้นเป็นงานของ cssnano, esbuild หรือ Lightning CSS ไม่ใช่เครื่องมือนี้
- รวม selector ที่ซ้ำให้เป็นอันเดียว เสี่ยงเพราะลำดับในต้นฉบับมีผลต่อ cascade minifier บางตัวพยายามทำ แต่ส่วนใหญ่ข้ามไป
- เปลี่ยนชื่อคลาส นั่นเป็น CSS-in-JS หรือ CSS Modules ไม่ใช่การย่อขนาด
- อินไลน์ critical CSS นั่นเป็นขั้นตอนแยกต่างหากตอน build
การคงคอมเมนต์ license
minifier จำนวนมากคงคอมเมนต์ที่ขึ้นต้นด้วย /*!, ใช้สำหรับส่วนหัว license:
/*! Bootstrap v5.3 · MIT License · https://github.com/twbs/bootstrap */
เครื่องมือนี้ตัดคอมเมนต์ทั้งหมด หาก CSS ของคุณมีส่วนหัว license ให้เพิ่มกลับหลังย่อขนาด หรือใช้ build tool ที่มีตัวเลือกคง license ไว้ เช่น cssnano หรือ esbuild
Source map
สำหรับการดีบักในโปรดักชัน build tool จะสร้าง source map ควบคู่ไปกับผลลัพธ์ที่ย่อขนาด:
styles.min.css
styles.min.css.map
DevTools อ่าน map ได้และแสดงหมายเลขบรรทัดของต้นฉบับที่จัดรูปสวยงามเมื่อคุณตรวจสอบองค์ประกอบ เครื่องมือนี้ไม่สร้าง source map
การย่อขนาด CSS ใน build pipeline
- Vite, Webpack, Parcel: จัดการให้อัตโนมัติในการ build โปรดักชัน
- PostCSS กับ cssnano: minifier มาตรฐานแบบเดี่ยว
- esbuild: รวมการย่อขนาด CSS ไว้ด้วย
- preset ของ cssnano:
defaultสำหรับการแปลงที่ปลอดภัย,advancedสำหรับเชิงรุก (พร้อมข้อแลกเปลี่ยนบางอย่าง)
เครื่องมือนี้เหมาะกับการย่อขนาดครั้งเดียว การแก้ไขด่วน และการเรียนรู้ว่า minifier ทำอะไรจริง ๆ สำหรับ workflow โปรดักชัน ให้ใช้เครื่องมือ build เพื่อให้ต้นฉบับยังอ่านง่ายและย่อขนาดเฉพาะผลลัพธ์
เมื่อใดที่การย่อขนาดอาจทำให้ CSS เสีย
พบยากแต่เป็นไปได้:
- selector ที่ไวต่อช่องว่าง:
.foo .barเทียบกับ.foo.bar, ช่องว่างมีผล - ค่า custom property ที่มีช่องว่าง:
--shadow: 0 2px 4px rgba(0,0,0,0.1), จุลภาคภายในrgba()ต้องไม่ถูกตัด - คอมเมนต์บล็อกที่ไม่ปิด:
/* missing closeกลืนทุกอย่างที่ตามมา minifier อาจทำงานผิดพลาดกับอินพุตที่ผิดรูป
วิธีแก้: รันผลลัพธ์ที่ย่อขนาดแล้วผ่าน lint/test ก่อนปล่อยใช้งานเสมอ
คำถามที่พบบ่อย
ไม่ ไฟล์ CSS ที่ย่อขนาดอย่างถูกต้องจะต่างกันที่ไบต์แต่มีความหมายเหมือนกันทุกประการ ทุก selector, พร็อพเพอร์ตี และค่าให้ผลภาพเดียวกัน หากคุณเห็นการเรนเดอร์เปลี่ยนไป แสดงว่า minifier มีบั๊ก หรืออินพุตของคุณมีไวยากรณ์ที่ไวต่อช่องว่าง
ใช่ เมื่อคุณกด “Minify CSS” CSS ที่คุณวางจะถูกส่งไปยังเซิร์ฟเวอร์ของเราเพื่อย่อขนาด แล้วส่งผลลัพธ์กลับมายังหน้า CSS จะไม่ถูกบันทึกลงฐานข้อมูลและไม่ถูกเพิ่มลงในลิงก์ของหน้า
หลัง ย่อขนาด CSS ที่คอมไพล์เสร็จซึ่งเบราว์เซอร์ได้รับจริง ผลลัพธ์จาก Sass ค่อนข้างกระชับอยู่แล้วแต่ยังมีช่องว่างและคอมเมนต์ที่การย่อขนาดจะตัดออก
พอประมาณแต่มีจริง โดยทั่วไป 5-15% เพิ่มจาก gzip การตัดช่องว่างและคอมเมนต์ยังทำให้รูปแบบของ gzip หนาแน่นขึ้นเล็กน้อย
เครื่องมือที่เกี่ยวข้อง
ตารางอ้างอิง ASCII
ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL
อ้างอิงตัวอักษร HTML
รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ
ตารางอ้างอิงแป้นพิมพ์ลัด
ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux
เครื่องสร้างตัวอักษรสุ่ม
สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน
ตัวลดรูปพีชคณิตบูลีน
ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^
เครื่องมือตรวจสอบหมายเลขโทรศัพท์
ตรวจสอบโครงสร้างหมายเลขตามประเทศ พร้อมดูภูมิภาค ประเภท และรูปแบบ E.164 ระหว่างประเทศ ในประเทศ และ RFC 3966
เครื่องมือนี้มีให้บริการในภาษาอื่น
- CSS-Minimierer [DE]
- CSS Küçültücü [TR]
- المصغر CSS [AR]
- CSS Minifier [EN]
- Minificador de CSS [PT]
- CSS 压缩 [ZH]
- CSSミニファイア [JA]
- Minifikator CSS [PL]
- CSS Minifier [NL]
- Minificador de CSS [ES]
- CSS 미니파이어 [KO]
- CSS Minifier [VI]
- CSS Minifier [SV]
- CSS Minifier [ID]
- Minificateur CSS [FR]
- Minificatore CSS [IT]
- CSS-минификатор [RU]