Como essa pergunta está ganhando muitas visualizações e essa foi a resposta aceita, senti a necessidade de adicionar a seguinte isenção de responsabilidade:
Essa resposta era específica para a pergunta do OP (que tinha a largura definida nos exemplos). Enquanto funciona, requer que você tenha uma largura em cada um dos elementos, a imagem e o parágrafo. A menos que essa seja sua exigência, recomendo usar a solução de Joe Conlin, que é postada como outra resposta a essa pergunta.
O span
elemento é um elemento embutido, você não pode alterar sua largura em CSS.
Você pode adicionar o seguinte CSS ao seu período para poder alterar sua largura.
display: block;
Outra maneira, que geralmente faz mais sentido, é usar um <p>
elemento como pai para o seu <span>
.
<li id="CN2787">
<img class="fav_star" src="images/fav.png">
<p>
<span>Text, text and more text</span>
</p>
</li>
Como <p>
é um block
elemento, você pode definir sua largura usando CSS, sem precisar alterar nada.
Mas em ambos os casos, uma vez que agora você tem um elemento de bloco, você precisará fazer a imagem flutuar para que o texto não fique todo abaixo da imagem.
li p{width: 100px; margin-left: 20px}
.fav_star {width: 20px;float:left}
PS Em vez de float:left
sobre a imagem, você pode também colocar float:right
em li p
mas, nesse caso, você também vai precisar text-align:left
para realinhar o texto corretamente.
PSS Se você avançou com a primeira solução de não adicionar um <p>
elemento, seu CSS deve ser assim:
li span{width: 100px; margin-left: 20px;display:block}
.fav_star {width: 20px;float:left}