This is a paragraph without the optional end tag
</p>. This is permitted by HTML rules but
confuses IE's HTML rendering engine when parsing markup code and
building DOM tree. The formatting of the form shows an unexpected
empty yellow stripe before the form.
This is a paragraph with the optional end tag
</p>, followed by a form identical with the
"Closing P tags are optional in HTML 4.01. However, when closing P tags are omitted, Internet Explorer 7 does not properly close paragraphs when TABLE elements are encountered. (...)
To be compliant with HTML 4.01, the P tag must close before any non-inline element."
coming from HTML Improvements and Acid2 (PDF)
The P Element
downloadable at http://code.msdn.microsoft.com/ie8whitepapers/Release/ProjectReleases.aspx?ReleaseId=572
This bug has been originally presented, discussed and explained in forum discussion comp.infosystems.www.authoring.stylesheets thread's "Lack of end tag messes up form styling - a known bug?"
Credit must go to Jukka Korpela for discovering, figuring out and reporting this bug thanks to his Unclosed <P> before a form webpage testcase.
Firefox 18.104.22.168, Opera 9.27, Opera 9.50, Safari 3.1, Konqueror 3.5.8, Amaya 11 build 20081216, Seamonkey 1.x, Seamonkey 2.x, NS 7.2 all pass this test.
This bug has been reported at connect's IE beta feedback as bug 338580. This bug has been closed by the IE team and will not be fixed for the release of IE 8 final.