¿Hay alguna manera de crear un estilo de lista en HTML con un guión (es decir, o - –
o - —
) es decir
<ul>
<li>abc</li>
</ul>
Salida:
- abc
Se me ocurrió hacer esto con algo así li:before { content: "-" };
, aunque no conozco las desventajas de esa opción (y estaría muy obligado a recibir comentarios).
Más genéricamente, no me importaría saber cómo usar caracteres genéricos para los elementos de la lista.
html
css
xhtml
html-lists
Brian M. Hunt
fuente
fuente
Respuestas:
Podría usar
:before
ycontent:
tener en cuenta que esto no es compatible con IE 7 o inferior. Si está de acuerdo con eso, entonces esta es su mejor solución. Consulte las tablas de compatibilidad de Can I Use o QuirksMode CSS para obtener todos los detalles.Una solución un poco más desagradable que debería funcionar en los navegadores más antiguos es usar una imagen para la viñeta y simplemente hacer que la imagen parezca un guión. Consulte la página del W3C
list-style-image
para ver ejemplos.fuente
:before
es que cuando los elementos de la lista abarcan varias líneas, la sangría en la segunda línea comienza donde está el guión, lo que arruina el efecto de la lista sangrada. Debe usar sangrías colgantes para evitar esto. Vea esto: alistapart.com/articles/taminglistscontent
usocontent: "\2014\a0"
Hay una solución fácil (sangría de texto) para mantener el efecto de lista sangrado con la
:before
pseudo clase.fuente
list-style-type: none;
el<ul>
elemento.ul li:before{ content:"- ";}
display: block; float: left;
alli:before
que puede sacarlo más fácilmente del flujo de contenido, de lo contrario es bastante difícil / con errores conseguir que la primera y las siguientes líneas se alineen correctamente. O la respuesta de Keyan Zhang también lo hace con posicionamiento absoluto.list-style-type dash
ya no es parte de CSSAquí hay una versión sin posición relativa o absoluta y sin sangría de texto:
Disfrutar;)
fuente
display: block; float: left;
alli:before
que puede sacarlo más fácilmente del flujo de contenido, de lo contrario es bastante difícil / con errores conseguir que la primera y las siguientes líneas se alineen correctamente. O la respuesta de Keyan Zhang también lo hace con posicionamiento absoluto..active
clase de navegación conli:before { visibility: hidden; }
yli.active:before { visibility: visible; }
Utilizar este:
fuente
violín de demostración
fuente
Permítame agregar mi versión también, principalmente para que encuentre mi propia solución preferida nuevamente:
https://codepen.io/burningTyger/pen/dNzgrQ
fuente
En mi caso, agregar este código a CSS
fue suficiente. Tan simple como es.
fuente
Una de las principales respuestas no funcionó para mí, porque, después de un poco de prueba y error, li: before también necesitaba la visualización de la regla css: inline-block.
Entonces esta es una respuesta totalmente funcional para mí:
fuente
fuente
Aquí está mi versión de violín :
La clase (modernizr)
.generatedcontent
en<html>
prácticamente significa IE8 + y cualquier otro navegador cuerdo.CSS:
fuente
No sé si hay una mejor manera, pero puede crear un gráfico de viñeta personalizado que represente un guión y luego informar al navegador que desea usarlo en su lista con el tipo de estilo de lista propiedad de . Un ejemplo en esa página muestra cómo usar un gráfico como una viñeta.
Nunca he tratado de usar: antes de la manera que lo ha hecho, aunque puede funcionar. La desventaja es que algunos navegadores antiguos no lo admitirán. Mi reacción instintiva es que esto sigue siendo lo suficientemente importante como para tenerlo en cuenta. En el futuro, esto puede no ser tan importante.
EDITAR: He hecho algunas pruebas con el enfoque del OP. En IE8, no pude lograr que la técnica funcionara, por lo que definitivamente todavía no es un navegador cruzado. Además, en Firefox y Chrome, parece que ignorar la configuración de tipo de estilo de lista en ninguno.
fuente
Mi solución es agregar una etiqueta de extensión adicional con mdash:
y agregando a css:
fuente
De otra manera:
fuente
CSS:
HTML:
fuente
En lugar de usar lu li, usado
dl (definition list) and dd
.<dd>
se puede definir utilizando un estilo css estándar como{color:blue;font-size:1em;}
y usar como marcador cualquier símbolo que coloque después de la etiqueta html. Funciona como ul li, pero le permite usar cualquier símbolo, solo tiene que sangrarlo para obtener el efecto de lista sangrado que normalmente obtieneul li
.Te da un código mucho más limpio! De esa manera, ¡podrías usar cualquier tipo de personaje como marcador! Sangría es de aproximadamente
-10px
y funciona perfecto!fuente
Para cualquiera que tenga este problema hoy, la solución es simplemente:
estilo de lista: "- "
fuente
Lo que funcionó para mí fue
fuente