/* codius.ru/articles/Как_сверстать_оглавление_содержание_аналогичное_книжному_на_HTML_CSS */

ul.t_contents {
   padding: 0;
   margin: 0;
   list-style-type: none;
   }

ul.t_contents li {
   border-bottom: 1px dotted #C2C2C2; /* Необязателен. Здесь задается толщина, тип и цвет точек */
   position: relative;
   padding: 0;
   margin-bottom: 5px; /* Необязателен. Задается для установки расстояния между блоками li */
   }

ul.t_contents li span {
   background-color: #FFF; /* Это необходимо, чтобы перекрыть точки фоном */
   margin: 0;
   }

ul.t_contents li span.text, ul.t_contents li span.p_num {
   bottom: -5px; /* Смещаем значимые блоки, чтобы они перекрыли точки */
   }

ul.t_contents span.text {
   position :relative;
   margin-right:7em; /* Задается чтобы текст не заходил на номера страниц */
   padding-right:2px; /* Необязателен. Задается чтобы точки не подходили вплотную к концу текста */
   }

ul.t_contents span.p_num {
   position: absolute;
   right: 0;
   padding-left:2px; /* Необязателен. Задается чтобы точки не подходили вплотную к номерам страниц */
   }
