Elementos flotantes bajo etiquetas en CSS

Supongamos que ahora tenemos dos párrafos y una imagen, colocada en el primer párrafo. Supongamos que a esta imagen le está definida la propiedad float con el valor right, y también semi-transparencia:

html<div>
  <p>
    <img src="img.png" alt="">
    Lorem ipsum dolor sit amet, consectetur adipiscing elitorire.
  </p>
  <p>
    some long text
  </p>
</div>
cssdiv {
  border: 1px solid red;
  text-align: justify;
}
p {
  border: 1px solid green;
}
img {
  float: right;
  opacity: 0.5;
}

Результат:

Y ahora pongamos en el código HTML la imagen después del primer párrafo y veamos qué pasa:

html<div>
  <p>
    Lorem ipsum dolor sit amet, consectetur adipiscing elitorire.
  </p>
  <img src="img.png" alt="">
  <p>
    some long text
  </p>
</div>
cssdiv {
  border: 1px solid red;
  text-align: justify;
}
p {
  border: 1px solid green;
}
img {
  float: right;
  opacity: 0.5;
}

Результат:

Como vemos, la imagen es rodeada por el texto del segundo párrafo, pero no del primero.

Pongamos nuestra imagen completamente después del segundo párrafo. En este caso, flotará a la derecha, pero no habrá ningún rodeo:

html<div>
  <p>
    Lorem ipsum dolor sit amet, consectetur adipiscing elitorire.
  </p>
  <p>
    some long text
  </p>
  <img src="img.png" alt="">
</div>
cssdiv {
  border: 1px solid red;
  text-align: justify;
}
p {
  border: 1px solid green;
}
img {
  float: right;
  opacity: 0.5;
}

Результат:

Resulta que solo rodearán a la imagen aquellos elementos que se encuentren debajo de ella, pero no aquellos que se encuentren encima.