I have a problem with my counter, which I used to get numbers up to h3, h4 and h5, as a list. The number should be visible only if the tag has class = "count", and only then it should meet reset for the header below.
When I skip showing the number on h3, the h4s counter gets messed upp, and the same for skipping h4. Does anyone know why?
body { counter-reset: h3 } h3 { counter-reset: h4 } h4 { counter-reset: h5 } h3.count:before { counter-increment: h3; content: counter(h3) ". " } h4.count:before { counter-increment: h4; content: counter(h3) "." counter(h4) ". " } h5.count:before { counter-increment: h5; content: counter(h3) "." counter(h4) "." counter(h5) ". " } h3:before, h4:before, h5:before { content: ""; counter-increment: none }
<h3 class="count">: should be : 1</h3> <h4 class="count">: should be : 1.1</h4> <h5 class="count">: should be : 1.1.1</h5> <h5>No counter</h5> <h5 class="count">: should be : 1.1.2</h5> <h4>No counter</h4> <h5 class="count">: should be : <span style="color: #ff0000">1.1.3</span></h5> <h5>No counter</h5> <h5 class="count">: should be : <span style="color: #ff0000">1.1.4</span></h5> <h4 class="count">: should be : 1.2</h4> <h3>No counter</h3> <h4 class="count">: should be : <span style="color: #ff0000">1.3</span></h4> <h5 class="count">: should be : <span style="color: #ff0000">1.3.1</span></h5> <h5>No counter</h5> <h5 class="count">: should be : <span style="color: #ff0000">1.3.2</span></h5> <h4>No counter</h4> <h5 class="count">: should be : <span style="color: #ff0000">1.3.3</span></h5> <h5>No counter</h5> <h5 class="count">: should be : <span style="color: #ff0000">1.3.4</span></h5> <h4 class="count">: should be : <span style="color: #ff0000">1.4</span></h4> <h3 class="count">: should be : 2</h3> <h5 class="count">: should be : 2.0.1</h5> <h4 class="count">: should be : 2.1</h4> <h5 class="count">: should be : 2.1.1</h5> <h5>No counter</h5> <h5 class="count">: should be : 2.1.2</h5>
CSS
body {counter-reset: h3} h3 {counter-reset: h4} h4 {counter-reset: h5} h3.count:before { counter-increment: h3; content: counter(h3) ". "} h4.count:before { counter-increment: h4; content: counter(h3) "." counter(h4) ". "} h5.count:before { counter-increment: h5; content: counter(h3) "." counter(h4) "." counter(h5) ". "} h3:before, h4:before, h5:before{ content: ""; counter-increment: none }
HTML
<h3 class="count">: should be : 1</h3> <h4 class="count">: should be : 1.1</h4> <h5 class="count">: should be : 1.1.1</h5> <h5>No counter</h5> <h5 class="count">: should be : 1.1.2</h5> <h4>No counter</h4> <h5 class="count">: should be : 1.1.3</span></h5> <h5>No counter</h5> <h5 class="count">: should be : 1.1.4</span></h5> <h4 class="count">: should be : 1.2</h4>
result
1. : should be : 1 1.1. : should be : 1.1 1.1.1. : should be : 1.1.1 No counter 1.1.2. : should be : 1.1.2 No counter 1.1.1. : should be : 1.1.3 No counter 1.1.2. : should be : 1.1.4 1.2. : should be : 1.2
Code: http://jsfiddle.net/6gj2r1jd/
source share