Poiché questa domanda sta guadagnando molte visualizzazioni e questa era la risposta accettata, ho sentito il bisogno di aggiungere la seguente dichiarazione di non responsabilità:
Questa risposta era specifica alla domanda del PO (che aveva la larghezza impostata negli esempi). Mentre funziona, richiede di avere una larghezza su ciascuno degli elementi, l'immagine e il paragrafo. A meno che questo non sia il tuo requisito, ti consiglio di utilizzare la soluzione di Joe Conlin che viene pubblicata come un'altra risposta a questa domanda.
L' span
elemento è un elemento in linea, non puoi modificarne la larghezza in CSS.
Puoi aggiungere il seguente CSS al tuo span in modo da poter cambiare la sua larghezza.
display: block;
Un altro modo, che di solito ha più senso, è usare un <p>
elemento come genitore per il tuo <span>
.
<li id="CN2787">
<img class="fav_star" src="images/fav.png">
<p>
<span>Text, text and more text</span>
</p>
</li>
Poiché <p>
è un block
elemento, puoi impostarne la larghezza utilizzando i CSS, senza dover modificare nulla.
Ma in entrambi i casi, poiché ora hai un elemento blocco, dovrai far fluttuare l'immagine in modo che il tuo testo non vada tutto sotto l'immagine.
li p{width: 100px; margin-left: 20px}
.fav_star {width: 20px;float:left}
PS Invece di float:left
sull'immagine, si può anche mettere float:right
su li p
, ma in tal caso, si dovrà anche text-align:left
riallineare il testo in modo corretto.
PSS Se sei andato avanti con la prima soluzione di non aggiungere un <p>
elemento, il tuo CSS dovrebbe essere così:
li span{width: 100px; margin-left: 20px;display:block}
.fav_star {width: 20px;float:left}