Dado que esta pregunta está ganando muchas visitas y esta fue la respuesta aceptada, sentí la necesidad de agregar el siguiente descargo de responsabilidad:
Esta respuesta fue específica para la pregunta del OP (que tenía el ancho establecido en los ejemplos). Mientras funciona, requiere que tengas un ancho en cada uno de los elementos, la imagen y el párrafo. A menos que ese sea su requisito, le recomiendo usar la solución de Joe Conlin, que se publica como otra respuesta a esta pregunta.
El span
elemento es un elemento en línea, no puede cambiar su ancho en CSS.
Puede agregar el siguiente CSS a su tramo para que pueda cambiar su ancho.
display: block;
Otra forma, que suele tener más sentido, es utilizar un <p>
elemento como padre para su <span>
.
<li id="CN2787">
<img class="fav_star" src="images/fav.png">
<p>
<span>Text, text and more text</span>
</p>
</li>
Como <p>
es un block
elemento, puede establecer su ancho usando CSS, sin tener que cambiar nada.
Pero en ambos casos, dado que ahora tiene un elemento de bloque, necesitará hacer flotar la imagen para que su texto no quede debajo de la imagen.
li p{width: 100px; margin-left: 20px}
.fav_star {width: 20px;float:left}
En lugar de PS float:left
en la imagen, también se puede poner float:right
en li p
pero en ese caso, también tendrá que text-align:left
volver a alinear el texto correctamente.
PSS Si siguió adelante con la primera solución de no agregar un <p>
elemento, su CSS debería verse así:
li span{width: 100px; margin-left: 20px;display:block}
.fav_star {width: 20px;float:left}