Étant donné que cette question gagne beaucoup de points de vue et que c'était la réponse acceptée, j'ai ressenti le besoin d'ajouter l'avertissement suivant:
Cette réponse était spécifique à la question du PO (qui avait la largeur définie dans les exemples). Pendant que cela fonctionne, il vous faut avoir une largeur sur chacun des éléments, l'image et le paragraphe. À moins que ce ne soit votre exigence, je recommande d'utiliser la solution de Joe Conlin qui est publiée comme une autre réponse à cette question.
L' span
élément est un élément en ligne, vous ne pouvez pas changer sa largeur en CSS.
Vous pouvez ajouter le CSS suivant à votre span afin de pouvoir modifier sa largeur.
display: block;
Une autre façon, qui a généralement plus de sens, consiste à utiliser un <p>
élément comme parent pour votre <span>
.
<li id="CN2787">
<img class="fav_star" src="images/fav.png">
<p>
<span>Text, text and more text</span>
</p>
</li>
Puisqu'il <p>
s'agit d'un block
élément, vous pouvez définir sa largeur en utilisant CSS, sans rien changer.
Mais dans les deux cas, puisque vous avez un élément de bloc maintenant, vous devrez faire flotter l'image afin que votre texte ne passe pas tout en dessous de votre image.
li p{width: 100px; margin-left: 20px}
.fav_star {width: 20px;float:left}
PS Au lieu de float:left
l'image, vous pouvez aussi mettre float:right
sur , li p
mais dans ce cas, vous aurez également besoin text-align:left
de réaligner le texte correctement.
PSS Si vous avez opté pour la première solution consistant à ne pas ajouter d' <p>
élément, votre CSS devrait ressembler à ceci:
li span{width: 100px; margin-left: 20px;display:block}
.fav_star {width: 20px;float:left}