It's weird how things turn around. I skipped the whole tables-for-layout age of the web; when I finally got into online design, about 3 years ago, I would opt for adding empty div/spans for ornamental elements ( unless the content had to go above, and even sometimes I'd chose just to use a negative margin to sop some of that space...) . it just made sense, if your design changed, you could always go back and remove empty elements , knowing they were there for presentation only.
The last week, I came across an "old" post where a couple of SP regulars, were denouncing the use of wraps with classes in favour of semantically neutral empty elements. I have been wanting to return to that practice.. but wasn't sure if it wouldnt be considered "best practice"
Oh, and sure :bef and :aft is the clean way to go .. but I still try to support IE. :/
PAUL, you said:
If you do for example have a content div inside then you end up with an inline element butting up to a block level element such as the div and while its valid code it's not very nice and indeed in some cases will throw IE into a fit as it tries to construct the anonymous block box around it and then gets tripped up by the whitespace on the inline element.
this raises another tangent question.
I have seen the following structure commonly used for drop down menus whose headers also link to pages...
is that the exception to the rule or does the link need to be wrapped in a block element too ?