Menu

Cú pháp chú thích trong CSS: cách viết comment trong CSS

CSS chỉ có một cú pháp chú thích, /* ... */, dùng cho cả một dòng lẫn nhiều dòng. Tìm hiểu chú thích được đặt ở đâu, cách vô hiệu hóa một quy tắc bằng chú thích, và vì sao // hay chú thích lồng nhau âm thầm làm hỏng quy tắc tiếp theo.

Trang này có trình soạn thảo chạy trực tiếp. Sửa, chạy và xem đầu ra ngay lập tức.

Cách viết chú thích trong CSS

Chú thích (comment) trong CSS bắt đầu bằng /* và kết thúc bằng */. Mọi thứ nằm giữa chúng đều bị trình duyệt bỏ qua, dù chỉ một dòng hay hai mươi dòng.

Chỉ có duy nhất cú pháp này. CSS không có kiểu chú thích một dòng riêng.

Chú thích được đặt ở đâu

Chú thích có thể nằm ở bất kỳ chỗ nào cho phép khoảng trắng: giữa các quy tắc, giữa các khai báo, sau một giá trị, bên trong danh sách selector. Nó hoạt động giống nhau trong tệp .css, trong phần tử <style> và trong thuộc tính style.

/* Buttons */
.btn,          /* default */
.btn-primary { /* variant */
  padding: 8px 14px; /* 8px top and bottom, 14px sides */
}
<p style="color: #16a34a; /* inline comments work too */">Hello</p>

Chú thích HTML, <!-- ... -->, dành cho markup, không dành cho CSS. Hai cú pháp được đặt cạnh nhau ở trang chú thích HTML.

Tạm tắt code bằng chú thích

Công dụng hằng ngày của chú thích là tắt một khai báo để xem nó làm gì mà không phải xóa nó. Bọc nó trong /* */:

Xóa /* và */ quanh dòng border là viền màu hổ phách xuất hiện. Tắt cả một quy tắc cũng làm tương tự: đặt /* trước selector và */ sau dấu ngoặc nhọn đóng.

Hầu hết trình soạn thảo làm việc này giúp bạn: chọn các dòng rồi nhấn Ctrl + / (Cmd + / trên macOS).

Vì sao // làm hỏng CSS

// trông giống chú thích vì nó là chú thích trong JavaScript, Sass và Less. Trong CSS, nó chỉ là hai ký tự, và chúng trở thành một phần của bất cứ thứ gì đứng sau. Khi đó trình duyệt thấy một selector không hợp lệ và bỏ qua toàn bộ quy tắc tiếp theo, không có thông báo lỗi nào.

Trình duyệt đọc // this is NOT a comment .one thành một selector, mà selector này không hợp lệ, nên cả quy tắc .one bị loại bỏ. Đổi dòng đó thành /* this is a comment */ là nền xanh lá quay trở lại.

Chú thích không lồng nhau được

Chú thích kết thúc ở */ đầu tiên. Bọc một đoạn code đã có chú thích bên trong sẽ khiến chú thích bên ngoài kết thúc sớm:

Để tắt một khối có chứa chú thích, hãy xóa hoặc rút gọn các chú thích bên trong trước.

Sắp xếp stylesheet bằng chú thích

Stylesheet dài sẽ dễ đọc hơn khi có tiêu đề cho từng phần. Một quy ước phổ biến:

/* ==========================================
   Layout
   ========================================== */

.page { max-width: 960px; margin: 0 auto; }

/* ------------------------------------------
   Header
   ------------------------------------------ */

.header { padding: 16px; }

/*! License: MIT (many minifiers keep comments that start with "!") */

Chú thích được gửi tới mọi người truy cập như một phần của tệp và hiện ra khi xem mã nguồn trang, nên đừng bao giờ ghi mật khẩu, URL nội bộ hay những ghi chú bạn không muốn công khai.

Lỗi thường gặp

  • Dùng //. Nó âm thầm xóa quy tắc tiếp theo. Hãy dùng /* */.
  • Lồng chú thích. */ đầu tiên kết thúc chú thích; phần còn lại làm hỏng quy tắc tiếp theo.
  • Quên */ đóng. Mọi thứ sau /*, cho đến cuối stylesheet, đều thành chú thích.
  • Dùng <!-- --> bên trong CSS. Đó là cú pháp chú thích HTML và không tắt được CSS.
  • Để lộ thông tin bí mật trong chú thích. Chúng được gửi tới trình duyệt cùng stylesheet.

Câu hỏi thường gặp

Làm sao viết chú thích trong CSS?

Bọc đoạn chữ giữa /* và */: /* This is a comment */. Cùng một cú pháp dùng được cho một dòng hay nhiều dòng, ở bất kỳ chỗ nào trong stylesheet cho phép khoảng trắng.

Có thể dùng // để chú thích trong CSS không?

Không. CSS không có chú thích một dòng. // bị đọc như một phần của selector hoặc khai báo tiếp theo, khiến nó không hợp lệ, nên trình duyệt bỏ qua cả quy tắc hoặc khai báo đó. Sass, Less và các preprocessor tương tự chấp nhận //, nhưng CSS thuần thì không.

Chú thích CSS có lồng nhau được không?

Không. Chú thích kết thúc ở */ đầu tiên, nên /* a /* b */ c */ kết thúc sau b, và phần c */ còn lại trở thành rác làm hỏng quy tắc phía sau.

Phím tắt để chú thích trong CSS là gì?

Trong hầu hết trình soạn thảo code, kể cả VS Code, Ctrl + / trên Windows và Linux hoặc Cmd + / trên macOS sẽ bọc các dòng đang chọn trong /* */, nhấn lần nữa để bỏ chú thích.

Chú thích CSS có ảnh hưởng đến hiệu năng không?

Chỉ làm tệp nặng thêm vài byte. Trình duyệt bỏ chúng đi khi phân tích. Các công cụ build thu gọn stylesheet và xóa chú thích; nhiều công cụ giữ lại chú thích bắt đầu bằng /*!, quy ước dành cho thông báo giấy phép.

Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu