Menu

Chỉ số trên và chỉ số dưới trong HTML: thẻ sup và sub

Viết chỉ số trên (superscript) bằng <sup> và chỉ số dưới (subscript) bằng <sub>: số mũ, số thứ tự, ký hiệu chú thích và công thức hóa học. Tìm hiểu các cách dùng phổ biến, cách ngăn chúng làm giãn khoảng cách dòng, và khi nào ký tự Unicode hoặc MathML phù hợp hơn.

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ỉ số trên trong HTML

Bọc phần chữ nâng lên trong <sup>. Trình duyệt hiển thị nó nhỏ hơn và nâng lên trên dòng. Thẻ đi cặp với nó, <sub>, hiển thị chữ nhỏ hơn và hạ xuống:

<sup> và <sub> là phần tử inline và có thể chứa các phần tử inline khác, nên 2<sup>n+1</sup> hay x<sub><i>i</i></sub> cũng chạy được.

Các cách dùng phổ biến

Bạn muốnViếtKết quả
Số mũ10<sup>3</sup>10 mũ 3
Số thứ tự2<sup>nd</sup>2nd với chữ nâng lên
Ký hiệu chú thíchtext<sup><a href="#n1">1</a></sup>Số 1 nâng lên, bấm được
Công thức hóa họcC<sub>6</sub>H<sub>12</sub>O<sub>6</sub>Glucose
Chỉ số hoặc cơ sốx<sub>1</sub>, log<sub>2</sub>Số 1 và 2 hạ xuống
Nhãn hiệuBrand<sup>TM</sup> hoặc Brand™TM nâng lên

Hãy dùng các thẻ này khi vị trí là một phần của ý nghĩa: m<sup>2</sup> và m2 là hai thứ khác nhau. Với chữ nhỏ chỉ vì cách trình bày (một nhãn, một huy hiệu), hãy dùng CSS.

Chú thích với sup

Ký hiệu chú thích là một liên kết chỉ số trên trỏ tới ghi chú ở cuối trang. Đặt cho mỗi ghi chú một id và trỏ liên kết tới đó:

Click một con số để nhảy tới ghi chú của nó, và "Back" để quay lại. Bỏ gạch chân ở liên kết nhỏ giúp đoạn văn gọn gàng, trong khi màu liên kết vẫn cho biết nó bấm được.

Giữ khoảng cách dòng đều nhau

Theo mặc định, <sup> hoặc <sub> có thể làm dòng chứa nó cao hơn các dòng xung quanh, nên một đoạn văn có vài số mũ trông giãn dòng không đều. Đặt line-height: 0 cho chúng sẽ khắc phục điều này:

Khung màu xám cao hơn vì dòng thứ hai và thứ tư bị đẩy giãn ra. Trong khung màu xanh lá, mọi dòng đều cao bằng nhau. Thêm quy tắc đó vào stylesheet gốc của bạn một lần là xong.

Ký tự Unicode và MathML

Với vài trường hợp phổ biến có sẵn ký tự: ² (&sup2;), ³ (&sup3;), ¹ (&sup1;), ™ (&trade;) và ½ (&frac12;). Chúng không cần thẻ và không ảnh hưởng đến chiều cao dòng, nhưng chỉ có cho một số chữ số và chữ cái. Công cụ tạo chữ nhỏ cho thấy tất cả các chữ cái chỉ số trên mà Unicode có.

Với công thức thật sự (phân số, căn, số mũ của số mũ), hãy dùng MathML, được các trình duyệt hiện nay hiển thị sẵn:

<msup> nhận một cơ số và một số mũ; <msub> làm tương tự cho chỉ số dưới. Với một số mũ đơn lẻ trong câu, <sup> đơn giản hơn.

Lỗi thường gặp

  • Dùng <sup> để làm chữ nhỏ. Thẻ này còn nâng chữ lên và cho người đọc biết đó là chỉ số trên. Dùng font-size cho chữ nhỏ.
  • Khoảng cách dòng không đều. Thêm sup, sub { line-height: 0; }.
  • Viết x^2 hoặc H2O trong văn bản hoàn chỉnh. Hãy dùng x<sup>2</sup> và H<sub>2</sub>O để nội dung được đọc đúng.
  • Ký hiệu chú thích quá nhỏ để chạm. Trên điện thoại, một chữ số nâng lên là mục tiêu rất nhỏ. Thêm chút padding cho sup a, hoặc đặt ghi chú gần đoạn văn.

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

Làm sao viết chỉ số trên trong HTML?

Bọc phần chữ nâng lên trong <sup>: x<sup>2</sup> hiển thị x bình phương, 1<sup>st</sup> là một số thứ tự. Trình duyệt vẽ phần này nhỏ hơn và nâng lên trên đường cơ sở.

Làm sao viết chỉ số dưới trong HTML?

Dùng <sub>: H<sub>2</sub>O cho nước, x<sub>1</sub> cho một chỉ số. Phần này được vẽ nhỏ hơn và hạ xuống dưới đường cơ sở.

Làm sao viết x bình phương trong HTML?

Dùng x<sup>2</sup> hoặc ký tự có sẵn x², mà bạn cũng có thể gõ bằng entity &sup2;. Ký tự này đủ dùng cho bình phương và lập phương; <sup> dùng được cho mọi số mũ, như 2<sup>n+1</sup>.

Vì sao <sup> làm khoảng cách dòng không đều?

Phần chữ nâng lên có thể làm dòng chứa nó cao hơn các dòng khác trong đoạn văn. Sửa bằng sup, sub { line-height: 0; }, quy tắc này ngăn chúng làm tăng chiều cao của dòng.

Có thể dùng CSS thay cho <sup> không?

vertical-align: super cùng font-size nhỏ hơn trông giống hệt, nhưng <sup> và <sub> mang ý nghĩa: "m2" và "m<sup>2</sup>" là hai giá trị khác nhau. Hãy dùng thẻ khi vị trí nâng lên hay hạ xuống là một phần của nội dung.

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