I would like to display floated images with a caption underneath. But using the code below, the caption text doesn't wrap, meaning that the floated image-with-caption takes up a huuuuuge amount of horizontal space.
If there's a better way to have an image with a caption, I'll take that over any improvements to this code. Failing that, how can I get the text inside the float to wrap?
I tried searching for this, but could only get results for wrapping text AROUND a float, not inside.
Added: I would prefer not to set an explicit width for the float, since I would have to do so for every single image I ever use.
The full XHTML...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title>Test</title>
<style type="text/css">
p.img-with-cap {
float: left;
}
</style>
</head>
<body>
<p class="img-with-cap">
<a class="img" href="http://sohowww.nascom.nasa.gov/">
<img alt="Sun" src="http://www.heeris.id.au/sites/default/files/sun.gif" width="256" height="256" />
</a>
<br />The Sun - a sinister and destructive force. Image from
<a href="http://sohowww.nascom.nasa.gov/">SOHO website</a>.
</p>
<p style="font-size: 200%">The Sun is a star located at the centre of our solar system. It is
classified as a G2 star, has a mass of about 2×1030 kg, a temperature of
5800 K at the surface and a core temperature of 15.6 million Kelvin. It
constantly emits electromagnetic radiation over the entire spectrum
(indeed, it can be modelled as a black body), peaked at the wavelength
corresponding to that of green light.</p>
</body>
</html>