We're looking to use CSS to create an ordered list that looks like this:
A.
A.1
A.2
B.
C.
C.1
C.2
C.2.1
C.2.2
How would you include the parent index in the child like this?
You'll need to use CSS counters.
CSS:
ol {
counter-reset: section; /* Creates a new instance of the
section counter with each ol
element */
list-style-type: none;
}
li:before {
counter-increment: section; /* Increments only this instance
of the section counter */
content: counters(section, ".") " "; /* Adds the value of all instances
of the section counter separated
by a ".". */
}
HTML:
<ol>
<li>Entry
<li>Entry
<li>Entry with subentries
<ol>
<li>Entry
<li>Entry
<li>Entry
<li>Entry
</ol>
<li>Entry
<li>Entry
<li>Entry with subentries
<ol>
<li>Entry
<li>Entry
<li>Entry
<li>Entry
</ol>
</ol>
JSFiddle
You should use CSS counters W3C specs (as @Zeta) has pointed out, but here is an approach that will handle multiple nesting and latin counters ..
ol{
list-style: none;
}
ol.roman{
counter-reset: roman;
}
ol.roman > li:before{
counter-increment: roman;
content: counter(roman, upper-latin)".";
padding-right:5px;
}
ol.roman li ol{
counter-reset: inner;
}
ol.roman ol li:before{
counter-increment: inner;
content: counter(roman, upper-latin)"."counters(inner,'.');
padding-right:5px;
}
Demo at http://jsfiddle.net/gaby/nZQSF/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With