2011-11-18 24 views

Trả lời

8

Bạn sử dụng hai bộ đếm khác nhau: một cho li cha mẹ và một cho các phụ đề li. Sau đó, trong mỗi li subitem, nối nhiều counter() chức năng sử dụng mỗi quầy, như thế này:

ol { 
    counter-reset: item; 
} 

ol ol { 
    counter-reset: subitem; 
} 

li { 
    display: block; 
} 

/* First level of parent items */ 
li:before { 
    content: counter(item, decimal-leading-zero) ' '; 
    counter-increment: item; 
} 

/* Second level of subitems */ 
li li:before { 
    /* counter(item) for the parents, counter(subitem) for the subitems */ 
    content: counter(item, decimal-leading-zero) counter(subitem, lower-alpha) ' '; 
    counter-increment: subitem; 
} 

jsFiddle demo, thử nghiệm trong tất cả các trình duyệt hỗ trợ :before và CSS2.1 quầy bao gồm IE8 +

đọc hữu ích: W3C CSS2.1 generated content spec, §12.4.1 Nested counters and scope

+0

+1 đối với 'truy cập tăng dần 'nhưng nó đến' 01a 02b' không phải '02a 02b' – diEcho

+0

@diEcho: Đã sửa lỗi! Cảm ơn bạn lần nữa vì đã chỉ ra lỗi trước đó :) – BoltClock

+0

Tuyệt vời! Bạn có thể áp dụng bất kỳ kiểu danh sách kiểu nào cho bộ đếm để bạn có thể sử dụng "số thập phân-số 0". Cảm ơn đã giúp đỡ. – Colin

-1

Không, CSS không hỗ trợ những thứ "biến" đó. Tất cả những gì bạn có thể làm là đặt cùng kiểu với cha mẹ.

+1

Err, không có thông số kỹ thuật CSS 2.1 cho bộ đếm mạnh. Câu hỏi của tôi đã thực sự về cách để có được nhiều trường hợp quầy. Có cả hàm counter() và counters(). counters() trả về toàn bộ cây đếm nhưng bạn không thể định dạng riêng kiểu danh sách kiểu của mỗi nhánh cây. Tôi đã đi xuống con đường sai với quầy() trước khi tôi hỏi câu hỏi của tôi. – Colin

0

Xem this: không có cách nào để thực hiện những việc như vậy trong CSS, rõ ràng là bạn sẽ cần phải sử dụng JavaScript cho nó nhưng các phần tử giả không nằm trong DOM afaik. Đối với các câu trả lời khác: anh ta muốn giá trị của bộ đếm xuất hiện trước các mục trong danh sách.

+0

Bạn không thể nhận được giá trị của một bộ đếm CSS thông qua JavaScript, nhưng bạn vẫn có thể truy cập nó bằng cách sử dụng CSS. Quầy là một điều nhỏ phức tạp, nhưng hãy kiểm tra câu trả lời của tôi về cách thức. – BoltClock

+0

Tôi đoán tôi đã hiểu nhầm câu hỏi, vì tôi nghĩ người muốn có thể đọc được giá trị bộ đếm (vì thế cần có JavaScript). Câu hỏi "get" trong câu hỏi đã làm tôi nhầm lẫn (nhưng công bằng, nó chỉ được gắn thẻ cho CSS). – Viruzzo

Các vấn đề liên quan