Implied tags in the IE HTML parser and how that can be interesting.
Also see: Language parsing and compiler design doesn’t have to be hard, but boy this book really sucks!
I recently made the verbal error of saying that for the new BASE element changes in IE 7 you had to put your tag inside the HEAD element. Well, someone pointed out to me rather quickly that on Firefox you could just have a bare TITLE and BASE followed by some body content and away you go the page would validate and parse properly. Well, we do the same thing in IE, and it is called implied tags in HTML. There are some gotchas though.
First, I’ll start with the trick… What in the heck is IE doing?
<HTML id=”dumpInternals”><TITLE></TITLE><BASE href=”foo”><BUTTON onClick=”alert(dumpInternals.outerHTML)”>Click Me!</BUTTON></HTML>
That is your boilerplate. When you click on your button there you’ll find that IE is actually putting the TITLE/BASE in the implied HEAD of the document and then putting the BUTTON into the implied BODY. Good stuff, and the document is still perfectly valid. Issues can arise when you do this though because you aren’t necessarily realizing what elements belong in the HEAD and which belong in the BODY and so you might terminate your HEAD enclosure early and put a bunch of random elements that don’t belong in the BODY into the BODY.
This won’t look right without your IE 7 Beta 1, since the BASE element is going to wrap a bunch of stuff, but you can get the gist. The below will show you that the second BASE ended up inside of the BODY. That isn’t good, we don’t look for BASE elements there and it won’t get used. (Read my previous post on IE 6 behavior and you’ll see that it used to get used because of some container magic, but not anymore, we are compliant).
<HTML id=”dumpInternals”><TITLE></TITLE><BASE href=”foo”><BUTTON onClick=”alert(dumpInternals.outerHTML)”>Click Me!</BUTTON><BASE href=”foo”></HTML>
align=right hspace=12/>Yesterday my coworkers redecorated my office. Pictures
align=left hspace=12/>Many who know me would assert that I have nothing to