Thread originally split from here.
[QUOTE=Stomme poes;4829481]Of course it doesn’t. Flow doesn’t mean “must all be inline OR must all be block”. It’s not technically illegal to mix the two in a block container, so the validator shouldn’t say anything about it (just as it doesn’t complain about bad class names or divitis).
It’s just considered a general bad practice by some AND can cause the duplicate content bug (and some other bugs) in IE < 8.[/QUOTE]
Hi poes. Nice of you to join. Long time no see
Regarding flow:
A | B
Either A or B must occur, but not both.
HTML 4 Document Type Definition
<!ENTITY % flow “%block; | %inline;”>
I read this as:
block | inline
Either block or inline must occur, but not both.
As far as I know, this is true for div, li, for example, in HTML 4.01 and also kept true in HTML5: either block level content, either inline level content for them, but NOT both.
Which makes the following type of mark up, that she presented as being for facebook what the hexagon is for the beehive, inept, to say the least:
<div>
[COLOR=Red] <a href=""></a>
<div></div>[/COLOR]
</div>
… and INVALID. The validator needs improvements, as it’s only trained to spot block level elements inside inline level elements. And even this one can be covered, if you nest deep enough, and you can fool the validator, this way, in giving you the badge, for an obvious invalid mark up. I believe there are topics on SPF outlining this fact.
If we disagree on this, give me some solid documented arguments to see what I’m missing, if I am indeed missing something. As far as I can tell, you’re looking more at HTML5, which has some exceptions on when a block level element may be considered inline-level container, looking at element’s child nodes.