Nén CSS
Xóa chú thích và khoảng trắng, rút gọn giá trị. Và nếu công cụ không xử lý được thứ gì đó trong file của bạn, nó sẽ nói rõ — thay vì lặng lẽ trả lại một stylesheet bị thiếu quy tắc.
- Không bao giờ lưu trữ
- Không xếp hàng, không phải chờ
- Không cần đăng ký, không watermark
CSS đã nén sẽ hiện ở đây.
Cách hoạt động
Dán mã CSS
Hoặc thả file vào. Không lưu trữ gì cả.
Xem kết quả
Bạn nhận được stylesheet đã nén và biết nó nhỏ đi bao nhiêu — hoặc lời giải thích về phần không xử lý được.
Sao chép hoặc tải xuống
Sẵn sàng đưa vào bước build của bạn.
Dung lượng thực sự nằm ở đâu
Phần lớn dung lượng tiết kiệm được đến từ khoảng trắng và chú thích, mà trong một stylesheet viết tay thì rất nhiều — thụt lề, dòng trống giữa các quy tắc và các tiêu đề phân mục giúp điều hướng file lớn đều là phần thừa thuần túy khi đã đưa lên web. Ngoài ra, các giá trị được rút gọn theo những cách không thể làm thay đổi ý nghĩa: màu viết là #ffffff thành #fff, 0px thành 0 vì số không chẳng cần đơn vị, số 0 đứng đầu trong 0.5em bị bỏ, và margin: 10px 10px 10px 10px gộp lại thành margin: 10px.
Những gì cố ý không làm là nhóm thao tác rủi ro. Gộp các quy tắc có khai báo giống nhau, hoặc sắp xếp lại chúng, sẽ làm thay đổi cascade — và cascade là phần của CSS nơi hai quy tắc có cùng độ ưu tiên được phân định bằng việc quy tắc nào đứng sau. Một công cụ nén sắp xếp lại mạnh tay sẽ cho ra file nhỏ hơn và, trong một stylesheet lớn, một trang khác đi một cách khó nhận ra. Các khai báo trùng lặp cũng thường là cố ý, được giữ lại làm phương án dự phòng cho trình duyệt cũ bỏ qua khai báo thứ hai.
Quy tắc lồng nhau và cú pháp media range hiện đại bị từ chối thay vì được nén, và lý do đáng nói rõ vì nó ngược với cách hầu hết các công cụ khác làm. Trình phân tích đứng sau công cụ này ra đời trước cả hai tính năng, và khi gặp thứ nó không hiểu, nó không báo lỗi — nó lặng lẽ xóa đi, nên một khối lồng nhau đơn giản là biến mất khỏi kết quả và trang mất style mà không có gì báo lại. Từ chối file là câu trả lời trung thực. Nếu stylesheet của bạn dùng nesting gốc hoặc @media (400px <= width <= 700px), hãy dùng một trong các công cụ bên dưới.
Cũng như với HTML, hãy đánh giá kết quả sau khi nén gzip. Stylesheet được gửi đi dưới dạng nén gzip hoặc brotli, và các thuật toán này vốn đã xử lý khoảng trắng lặp lại cực kỳ tốt — nên một file giảm 30% khi nén mã có thể chỉ nhỏ đi 5% khi truyền đi. Phần tiết kiệm là có thật, và nhỏ hơn con số quảng cáo.
Khi bạn cần công cụ khác
Lightning CSS là công cụ phù hợp cho stylesheet hiện đại: nó hiểu nesting, media range, các hàm màu và mọi thứ khác được thêm vào trong vài năm gần đây, nén mạnh hơn bất kỳ công cụ cũ nào, và còn chuyển cú pháp mới về dạng cũ cho trình duyệt cũ trong cùng một lượt. esbuild --minify style.css gần như tốt bằng và cực kỳ nhanh. Cả hai đều nên nằm trong bước build thay vì trong một tab trình duyệt.
Cái lợi lớn hơn nhiều thường là xóa các quy tắc bạn không dùng. Một website xây dựng trên framework utility hoặc thư viện component thường gửi đi những stylesheet mà phần lớn file không khớp với bất kỳ thứ gì trên trang — và PurgeCSS, hoặc chính bước build của framework, sẽ cắt giảm con số đó đến cả chục lần. Nén CSS không dùng đến chỉ làm CSS không dùng đến nhỏ hơn; xóa nó đi mới là cách sửa thực sự.
Câu hỏi thường gặp
CSS của tôi có bị lưu ở đâu không?
Không, và với mã nguồn thì đó chính là điều cốt yếu. Không lưu trữ gì cả và không máy chủ nào nhìn thấy nó. Dán mã nguồn độc quyền vào một công cụ nén online có gửi nó đi đâu đó chính là làm lộ mã, bất kể trang đó nói gì về việc lưu giữ — và đó đúng là loại việc người ta làm vội vàng mà không suy nghĩ.
Vì sao file của tôi bị từ chối?
Vì nén nó sẽ làm mất quy tắc. Công cụ nén đứng sau trang này có từ năm 2022 và không biết đến hai thứ nay đã là CSS thông thường. Gặp nesting gốc — một quy tắc viết bên trong quy tắc khác, có hoặc không có "&" — nó trả về quy tắc bên ngoài và LẶNG LẼ BỎ quy tắc lồng bên trong. Gặp một media range query hiện đại như @media (width >= 400px), nó trả về một stylesheet trống. Cả hai trường hợp đều không báo lỗi. Chúng tôi đã đo cả hai trên đúng phiên bản chúng tôi đang dùng, và quyết định rằng trao cho ai đó một stylesheet bị thiếu style còn tệ hơn là từ chối, nên hai trường hợp này được phát hiện và từ chối. Số quy tắc cũng được đếm trước và sau như một bước kiểm tra chung, phòng khi có trường hợp thứ ba chưa ai phát hiện.
Vậy làm sao để nén CSS lồng nhau?
Hãy biên dịch bỏ phần lồng nhau trước. Mọi công cụ build hỗ trợ nesting — Sass, PostCSS, Lightning CSS hoặc bundler của bạn — đều làm phẳng nó trong quá trình build, và kết quả đã làm phẳng được nén ở đây mà không gặp vấn đề gì. Nếu bạn viết nesting thủ công và đưa thẳng lên web, bạn đang dựa vào một tính năng được các trình duyệt hiện nay hỗ trợ nhưng hệ sinh thái công cụ nén chưa hoàn toàn theo kịp.
Công cụ thực sự làm gì?
Xóa chú thích và khoảng trắng, rút gọn mã màu (#ffffff thành #fff, #ff0000 thành red), bỏ các đơn vị và dấu chấm phẩy không cần thiết, và gộp những gì có thể gộp một cách an toàn. Nó không xóa các quy tắc mà nó cho là không dùng — việc đó cần biết HTML của bạn, và đoán sai sẽ xóa mất style bạn cần.
File sẽ nhỏ đi bao nhiêu?
Với CSS viết tay, thường là 15–30%. Kết quả đã được công cụ build biên dịch thường gần như tối giản sẵn và sẽ hầu như không đổi. Gzip trên máy chủ của bạn làm được nhiều hơn việc nén mã; hai cách cộng dồn hiệu quả.
Nén stylesheet dùng cho production ở đây có an toàn không?
Có. Không lưu trữ gì cả, và hai trường hợp công cụ không xử lý được sẽ bị từ chối thay vì bị làm hỏng một cách lặng lẽ, nên thứ bạn nhận lại hoặc là đúng, hoặc là lời giải thích vì sao bị từ chối.
Nên biết: Quy tắc lồng nhau (nesting) và cú pháp media range hiện đại bị từ chối thay vì được nén. Công cụ nén được xây dựng trên một trình phân tích ra đời trước cả hai tính năng này, và thay vì báo lỗi, nó lặng lẽ xóa những gì nó không hiểu — một khối lồng nhau đơn giản là biến mất khỏi kết quả. Từ chối file là câu trả lời trung thực cho đến khi trình phân tích đó theo kịp.
Đặt công cụ này lên website của bạn
Miễn phí cho mọi blog, trang lớp học hay bài viết hướng dẫn. Chỉ cần dán một đoạn mã là khách truy cập có thể dùng ngay trên trang của bạn.
Công cụ văn bản khác
Nén JavaScript
Nén JavaScript một cách riêng tư
Nén HTML
Thu gọn HTML mà không làm hỏng trang
Chuyển chữ hoa chữ thường
CHỮ HOA, chữ thường, Title Case, camelCase và hơn nữa
Xóa dòng trùng lặp
Bỏ dòng lặp, sắp xếp và làm gọn danh sách
Đếm số từ
Số từ, số câu và thời gian đọc
Đếm ký tự
Số ký tự, số byte và giới hạn thực sự đếm gì