Para resumir las otras respuestas aquí, si desea un control más preciso sobre el espacio entre viñetas y el texto en un <li>
elemento de la lista, sus opciones son:
(1) Use una imagen de fondo:
<style type="text/css">
li {
list-style-type:none;
background-image:url(bullet.png);
}
</style>
<ul>
<li>Some text</li>
</ul>
Ventajas:
- Puedes usar cualquier imagen que quieras para la viñeta
- Puede usar CSS
background-position
para colocar la imagen prácticamente en cualquier lugar que desee en relación con el texto, utilizando píxeles, ems o%
Desventajas
- Agrega un archivo de imagen adicional (aunque pequeño) a su página, aumentando el peso de la página
- Si un usuario aumenta el tamaño del texto en su navegador, la viñeta se mantendrá en el tamaño original. También es probable que se salga de su posición a medida que aumenta el tamaño del texto.
- Si está desarrollando un diseño 'receptivo' utilizando solo porcentajes para anchos, podría ser difícil obtener la viñeta exactamente donde lo desea en un rango de anchos de pantalla
2. Use relleno en la <li>
etiqueta
<style type="text/css">
ul {padding-left:1em}
li {padding-left:1em}
</style>
<ul>
<li>Some text</li>
</ul>
Ventajas:
- Sin imagen = 1 archivo menos para descargar
- Al ajustar el relleno en el
<li>
, puede agregar tanto espacio horizontal adicional entre la viñeta y el texto como desee
- Si el usuario aumenta el tamaño del texto, el espaciado y el tamaño de la viñeta deberían escalarse proporcionalmente
Desventajas
- No se puede mover la viñeta más cerca del texto que el valor predeterminado del navegador
- Limitado a formas y tamaños de los tipos de viñetas incorporados de CSS
- La viñeta debe ser del mismo color que el texto.
- No hay control sobre el posicionamiento vertical de la bala.
(3) Envuelva el texto en un <span>
elemento extra
<style type="text/css">
li {
padding-left:1em;
color:#f00; /* red bullet */
}
li span {
display:block;
margin-left:-0.5em;
color:#000; /* black text */
}
</style>
<ul>
<li><span>Some text</span></li>
</ul>
Ventajas:
- Sin imagen = 1 archivo menos para descargar
- Se obtiene un mayor control sobre la posición de la bala que con la opción (2) - se puede mover más cerca del texto (aunque a pesar de mis mejores esfuerzos, parece que no se puede alterar la posición vertical mediante la adición
padding-top
a la<span>
. Alguien más puede tener una solución para esto, sin embargo ...)
- La viñeta puede tener un color diferente al del texto.
- Si el usuario aumenta su tamaño de texto, la viñeta debería escalar en proporción (siempre que configure el margen y el margen en ems, no px)
Desventajas
- Requiere un elemento no semántico adicional (esto probablemente le hará perder más amigos en SO de lo que lo hará en la vida real), pero es molesto para aquellos a quienes les gusta que su código sea lo más ágil y eficiente posible, y viola la separación de presentación y contenido que se supone que debe ofrecer HTML / CSS)
- No hay control sobre el tamaño y la forma de la bala.
Esperamos algunas nuevas características de estilo de lista en CSS4, para que podamos crear viñetas más inteligentes sin recurrir a imágenes o marcas adicionales :)