lol - Robert and Tommy are the html experts.:) I'm just a CSS guy. I just do html the way I think it should be done which doesn't always mean I'm right.
If <img> is an inline element but has width and height giving it block properties too I don't get why it has to be contained in anything.
CSS cannot change the rules of html.
It can change the appearance of things and it can set an element to have a "display" of "block" - which basically makes it display a block box. It still does not mean that the element is a "block element". They are different concepts and even though you change the display of an element it must obey the html rules for that element.
Since I never use images as direct descendants of the body, at the very least they're going to be in a 'mainContainer' type Div, I'm assuming that I'm failing to understand the importance of you 'affording them the same courtesy'? Why is it bad practice?
For the same reason and the same logic that you shouldn't do this.
<p>some content</p> <span>anonymous text</span> <p>Some more content</p>
It's valid and works (mostly) but it's not semantically correct.
However, irrespective of the rights and wrongs it causes browser bugs and I see a few posts every month in the forum directly related to this problem. That in itself is enough to convince me to use other methods. As I said above a div will do fine if you don't like using a p element - but a "p" element seems right to me (and is less characters to type).:)
If inline elements have to be contained within a block element, why hasn't one been invented for this problem with images?
I suppose its the same as asking why there isn't a parent for a span. It depends on its use and it can go in paragraphs or divs or headings etc just like an image could.
Actually I think it would have been more sense for images to be elements like del and insert which are both block elements and inline elements depending where used. Then it would be fine to have them stand shoulder to shoulder with block elements.