OL(/UL) cannot contain other children but LI (you have some a in there).
A secret? Never style LI elements beyond needed.
Just style enough to set them horizontally / vertically, and move on styling their inner elements.
I.e. instead, if you style the inner A elements you can gain a larger clickable UI element (= great UI)
See this fiddle
HTML
<ol class="etapier"> <li class="done"><a href="">1.</a></li> <li class="done"><a href="">2.</a></li> <li class="todo"><a href="">3.</a></li> <li class="done"><a href="">4.</a></li> <li class="done"><a href="">5.</a></li> </ol>
CSS :
/* CHANGE COLOR HERE */ ol.etapier li.done { border-color: yellowgreen ; } /* CHANGE COLOR HERE */ ol.etapier li.done:before { background-color: yellowgreen; border-color: yellowgreen; } ol.etapier { display: table; list-style-type: none; margin: 0 auto 20px auto; padding: 0; table-layout: fixed; width: 100%; } ol.etapier li { display: table-cell; text-align: center; padding-bottom: 10px; white-space: nowrap; position: relative; } ol.etapier li a { color: inherit; } ol.etapier li { color: silver; border-bottom: 4px solid silver; } ol.etapier li.done { color: black; } ol.etapier li a { position :relative; } ol.etapier li a:before { position: absolute; bottom: -23px; left: 0; margin-left:-5px; color: white; height: 15px; width: 15px; line-height: 15px; border: 2px solid silver; border-radius: 15px; } ol.etapier li.done a:before { content: "\2713"; color: white; background-color: green } ol.etapier li.todo a:before { content: " " ; background-color: white; }