Números de linha a cada nth linha com contadores de CSS?

Eu tive que cortar alguns links de referência (em itálico), como eu não tenho reputação suficiente ainda, mas talvez possa substituí-los mais tarde.

Eu criei um plug-in jQuery que exibe números de linha incrementados para poesia e drama; As linhas de um poema são representadas como os filhos de uma lista ordenada (ol.verse). Quando o javascript está habilitado, o plug-in gera números de linha a cada n-ésimo intervalo com base em um mínimo de valores de lista in-line. Esses números podem ser manipulados por meio do DOM. Quando JS está desabilitado, marcadores de lista numérica a cada quinta linha entram como números de linha de fallback.

Gostaria de saber agora se é possível fazer com que o poema conectado seja degradado como uma lista alimentada por contadores de CSS. O IE 6-7 recebe listas ordenadas simples com os períodos finais dos numerais, mas os navegadores superiores devem obter contadores ou os números gerados pelo plug-in. Aqui está o truque. As regras do contador CSS devem ser capazes de acomodar situações em quea numeração de linhas e a indexação filho da lista de poemas não são sincronizadas. Eu vi um número de posts emcontadores de formatação epulando crianças, assim comoas formas certas e erradas de formatar semanticamente poemas etipograficamente (aPropostas do W3C recomendar parágrafos e pré tags são questionáveis ​​na melhor das hipóteses); Cheguei vazio, no entanto, no problema de usar contadores para fazer números de linha incrementados, por isso estou compartilhando meus próprios esforços em direção a uma solução e espero que vocês possam me ajudar em um melhor.

As regras básicas que tenho experimentado com sucesso limitado:

ol.verse { counter-reset: line 0;
ol.verse li {
   display: block;       
}

ol.verse li:before {
   counter-increment: line;
   content: counter(line) " ";
}

/* hide lines, or more precisely, children, that are not a multiple of 5 */

ol.verse li:not(:nth-child(5n)):before {
   visibility: hidden;
}

Como você pode vereste violino, estas regras exibem números a cada 5ª linha SO SOZA, pois toda criança listada deve ser contada como uma linha do poema e SO LONG AS quando a passagem começa da linha 1, 6, 11, 16, etc. (isto é, o contra-reset é 0 ou um múltiplo de 5). Essa última regra pode ser de interesse para aqueles que desejam fazer números de linha incrementados para alguma tarefa mais simples (um poema simples para uma entrada de blog, por exemplo), mas essas condições são muito restritivas para as nossas necessidades (um repositório estruturado por TEI de edições críticas de poesia / drama online).

Problema 1: Quando eu tenho vários trechos ou divisões de um ou mais trabalhos cujos contra-resets são não-múltiplos do incremento padrão, eu tenho que referenciar os trechos por id e compensar a regra de ocultação para cada id'd ol.verse pelo resto. Por exemplo, um trecho que começa na linha 43 requer o ajuste do contra-reset para 42, e o ajuste do parâmetro n-child da regra de ocultação para 5n + 3 (desde 42% 5 = 3). De repente, os contadores se tornam menos atraentes do que os valores da lista de numeração à mão. Pelo menos é melhor que ....

Problema 2: Fazer com que o navegador descubra certas linhas, como subcabeçalhos ou instruções de palco, que podem estar embutidas no poema. Para essas linhas, tentei anexar uma classe nocount e desativar a propriedade de exibição ou a propriedade de visibilidade, por exemplo,

ol.verse li.nocount:before {
   display: none;     
}  

OU

ol.verse li.nocount:before {
   visibility: hidden;
}

Em combinação com as linhas de ocultação de regras que não são múltiplos do incremento, nenhuma delas fornece os resultados desejados. Vejoeste violino. O primeiro aciona a numeração incorreta de linhas nos números certos; a segunda, a numeração correta nas erradas. Existe alguma maneira de escrever regras de contador de CSS que funcionariam se os números de linha automáticos correspondem ou não aos índices filhos corretos? Talvez haja alguma outra combinação de seletores CSS que faça o trabalho?

questionAnswers(2)

yourAnswerToTheQuestion