Il float funziona solo con oggetti che ci stanno sulla riga.
Se il secondo oggetto e` piu` largo (o si espande in modo da essere piu` largo) dello spazio a disposizione, va a capo.
Dato che il secondo oggetto contiene del testo, e` facile che questo si espanda oltre lo spazio.
Comunque nella descrizione ci sono errori semantici.
Il testo va inserito in un tag <p>, non direttametne in un <div>
E a questo punto il div interno potrebbe contenere:
codice:
...
<div class="articolo">
<img id="..." alt="..." />
<p> qui il testo relativo </p>
</div>
con CSS del tipo:
codice:
.articolo {
width: ...;
}
.articolo img {
float: right;
max-width: 200px; /* valore da definire */
}
.articolo p {
float: right;
margin-right: 201px; /* uguale o maggiore di quello sopra */
}