¿Cómo obtengo el enésimo hijo de un elemento usando los selectores de CSS2?

¿Hay alguna posibilidad de obtener el enésimo elemento de una lista ordenada en CSS2?

(similar a :nth-child() en CSS3)


FYI: Estoy tratando de progtwigr la versión alemana de Parcheesi para que sea compatible con XHTML 1.1 y CSS2 y trate de generar el campo de juego usando listas ordenadas, por lo que las opciones de movimiento están predeterminadas por la estructura de datos. Para posicionar el camino alrededor del centro, me gustaría seleccionar los elementos de la lista por número.

Puede usar los combinadores de hermanos adyacentes junto con la :first-child , repitiendo los combinadores todas las veces que necesite para alcanzar a un cierto n enésimo hijo. Esto también se menciona en una respuesta a una pregunta diferente .

Para cualquier elemento E , comience con E:first-child , luego agregue + E para los hijos siguientes hasta llegar al elemento al que se dirige. No tiene que usar el mismo elemento E , por supuesto; podría cambiarlo por cualquier tipo, clase, ID, etc., pero los bits importantes son los signos :first-child y + .

Como ejemplo, para obtener el tercer li de su ol , el siguiente selector de CSS3:

 ol > li:nth-child(3) 

Sería replicado en CSS2 así:

 ol > li:first-child + li + li 

Una ilustración:

 

Tenga en cuenta que, dado que no hay combinados hermanos que tengan en cuenta a los hermanos anteriores (ni en CSS2 ni CSS3), no puede emular :nth-last-child() o :last-child utilizando los selectores de CSS2.

Además, solo puede emular :nth-child(b) para un niño específico a la vez, donde b es un número constante en la fórmula an+b (como se describe en la especificación ); no puede lograr ninguna fórmula compleja con los combinadores de hermanos adyacentes solo.

No, no puedes. nth-child() se introdujo en CSS3, por lo que no creo que haya una forma de evitar ese problema.