Style sheets handle this problem adequately. Maybe even too well. Parsing a CSS style sheet is harder than parsing HTML 3.2. Worse, too many dumbos forget to assign sizes to their images. There are a few reasons for some of these things.
None are very good.
Frankly, the angle bracket notation is just too clumsy, I think. On the other hand, parsing it is a piece of cake. This is a user problem. Folks don't have a clue as to what looks good or tolerable. Interestingly, I think the most comfortable background for reading is the default netscape gray.