Quiero hacer listas "gramaticalmente correctas" usando CSS. Esto es lo que tengo hasta ahora:Combinación de pseudo-elementos CSS, ": after" the ": last-child"
Las etiquetas <li>
se muestran horizontalmente con comas después de ellas.
li { display: inline; list-style-type: none; }
li:after { content: ", "; }
que funciona, pero quiero el "último hijo" para tener un punto en vez de coma. Y, si es posible, me gustaría poner "y" antes del "último hijo" también. Las listas que estoy diseñando se generan dinámicamente, por lo que no puedo simplemente dar una clase a los "últimos niños". No puede combinar pseudo-elementos, pero ese es básicamente el efecto que quiero lograr.
li:last-child li:before { content: "and "; }
li:last-child li:after { content: "."; }
¿Cómo puedo hacer este trabajo?
realmente no deberías usar CSS para esto. –
Debo estar de acuerdo con Funky Dude un poco. Sería mejor hacer esto en el HTML (o codebehind si es más que simple HTML). CSS es para formatear :) – Zyphrax
Yo ... personalmente, tiendo a argumentar que, en una lista, el formateo es una satisfacción, no una necesidad. Ese ser el caso usando CSS permite adiciones o eliminaciones más simples de la lista, que usar la codificación html o del lado del servidor. Pero soy extraño así, a veces, y, sinceramente mmm, etc ... =) –