Поскольку этот вопрос набирает много просмотров и это был принятый ответ, я почувствовал необходимость добавить следующий отказ от ответственности:
Этот ответ был специфическим для вопроса OP (ширина которого была установлена в примерах). Хотя он работает, он требует, чтобы у вас была ширина каждого из элементов, изображения и абзаца. Если это не ваше требование, я рекомендую использовать решение Джо Конлина, которое опубликовано как еще один ответ на этот вопрос.
spanЭлемент является встроенный элемент, вы не можете изменить его ширину в CSS.
Вы можете добавить следующий CSS в свой диапазон, чтобы вы могли изменять его ширину.
display: block;
Другой способ, который обычно имеет больше смысла, - использовать <p>элемент в качестве родительского для вашего <span>.
<li id="CN2787">
<img class="fav_star" src="images/fav.png">
<p>
<span>Text, text and more text</span>
</p>
</li>
Поскольку <p>это blockэлемент, вы можете установить его ширину с помощью CSS, ничего не меняя.
Но в обоих случаях, поскольку теперь у вас есть блочный элемент, вам нужно будет переместить изображение, чтобы весь текст не располагался ниже изображения.
li p{width: 100px; margin-left: 20px}
.fav_star {width: 20px;float:left}
PS Вместо того float:leftна изображении, вы можете также положить float:rightна , li pно в этом случае вам также необходимо text-align:leftправильно выровнять текст.
PSS Если вы выбрали первое решение - не добавлять <p>элемент, ваш CSS должен выглядеть так:
li span{width: 100px; margin-left: 20px;display:block}
.fav_star {width: 20px;float:left}