Bài viết sẽ hướng dẫn bạn thêm chức năng tự động đánh số cho các headings h1, h2, h3 trong bài viết để ra dạng như 1.1, 1.2, 1.3,… Hoàn toàn bằng CSS.
Ví dụ đoạn code headings trong bài viết của bạn có dạng như sau
Bạn muốn kết quả của nó sẽ thành ra như thế này
My Article
1. Introduction
1.1. Rationale
2. Background
Đánh số headings
Để có thể đánh số các headings, chúng ta dùng cấu trúc counter . Đây là một biến số nguyên gồm có 3 thành phần chính : reset , increment , read . Dưới đây là đoạn code để có thể đạt được kết quả trong ví dụ đầu bài viết
Giải thích cho đoạn code
Vì ở ví dụ đầu bài, tôi xem thẻ h2 là thẻ “to nhất”, nghĩa là nó có dạng 1., 2.,.. rồi tới thẻ h3 sẽ có dạng 1.1, 1.2,… thay vì là thẻ h1 . Thế nên ngay từ lúc load trang, tôi khôi phục (reset) bộ đếm của thẻ h2 về số đầu tiên, đó là lý do ta có dòng lệnh
Để an toàn hơn, chúng ta lại reset nó lần nữa ở thẻ h1 .
Bây giờ xem xét nội dung trong thẻ h2
- content: counter(h2counter) ".\0000a0\0000a0"; Dòng này chính là cái hiển thị ra bài viết của bạn. Riêng cái ".\0000a0\0000a0" chính là dấu “.” và 2 khoảng trắng phía sau số đếm. Bạn có thể thay dấu “.” bằng bất cứ cái gì hoặc cũng có thể thêm/bớt số khoảng trắng phía sau số đếm.
- counter-increment: h2counter; Trong thẻ h2 thì chỉ có thẻ h2 sẽ tăng dần thôi.
- counter-reset: h3counter; Trong mỗi thẻ h2 mới thì các thẻ h3 đều phải được reset lại số đếm.
Ở đây thẻ h3 là thẻ “nhỏ nhất” nên ta chỉ có 2 dòng lệnh, không có dòng lệnh counter-reset , nếu như bạn muốn có thêm thẻ h4 nữa thì sẽ thêm dòng lệnh này vào.
Trong trường hợp bạn muốn dùng h1 làm thẻ “to nhất” thì phải làm sao? Vui lòng xem đoạn code bên dưới
Không đánh số 1 heading nào đó
Bạn thêm đoạn code sau đây vào đoạn code có sẵn ở trên
Cách sử dụng : Ở heading nào mà bạn không muốn đánh số, bạn thêm class="nocount" vào là xong.
Chỉ đánh số ở một bài viết
Nếu bạn để đoạn code trên ở trong file css chính của trang web, tất cả các headings sẽ bị ảnh hưởng. Trong trường hợp bạn không muốn thế, bạn chỉ muốn đánh số ở 1 vài bài viết mà thôi, rất đơn giản, ở bài viết ấy, trong chế độ viết HTML, hãy chèn đoạn code vào giữa hai thẻ <style></style> là được.
Bài viết tham khảo trang này.
Show Konversi KodeHide Konversi Kode Show EmoticonHide Emoticon