I have a <figure><img> structure that is set to float: right with a max-width: 50%. So the figure with the images floats on the right side, like I want it. Subsequent paragraphs wrap their text on the left half of the page and don't bleed into the floating figure.
But if I add an <aside> with a background color and nice border, the <aside> element is rendered on top of the floating figure. Upon further investigation, I see that the <p> tag also extends into the floating figure---it's just that its text wraps before it. So presumably if I put a border on the paragraph, it would render over the floating figure, too. I guess I had forgotten this about CSS.
So I could float the <aside>, but then the size would shrink-wrap around the text (which is much smaller than half the page). Or I could give the <aside> a display: inline-block, but the same thing would happen.
How can I make a block element expand its width as wide as possible but not so that it would render over a floating element? Think about it this way: a paragraph will wrap its text at the edge of a floating figure. How could I make an <aside> have a width equal to the width at which a paragraph would wrap in the presence of a floating figure?
Here is an example that makes this clear. Resize the page horizontally until the text wraps.
<!DOCTYPE html>
<html lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta charset="UTF-8" />
    <title>aside float overlap</title>
  </head>
  <body>
    <figure style="float: right"><img src="https://upload.wikimedia.org/wikipedia/commons/d/de/Nokota_Horses_cropped.jpg" alt="Horses" />
    <figcaption>Horses from (<a href="https://commons.wikimedia.org/wiki/File:Nokota_Horses_cropped.jpg"><cite>Wikimedia Commons</cite></a>)</figcaption></figure>
    <p>The figure shows some horses. You'll notice that this paragraph wraps right at the edge of the image, and then goes to the next line.</p>
    <aside style="border: 0.1em solid">This is an aside. I want the border to stop at the floated figure, just like the text will wrap at the floated figure.</aside>
  </body>
</html>
There is another question that is similar to mine---but the responses there do not provide a solution to my problem.
So let me ask it like this: understanding that the box takes up the entire width, even if its contained text may wrap when encountering a floating block, is there any way to define a border and/or background that would only appear around the wrapping text, and not bleed into the floating block?
 
     
    