The SitePoint Forums have moved.

You can now find them here.
This forum is now closed to new posts, but you can browse existing content.
You can find out more information about the move and how to open a new account (if necessary) here.
If you get stuck you can get support by emailing forums@sitepoint.com

If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Ok if I've reconstructed your layout correctly then the problem is that the 218px left margin on headerpic is taken from the right edge of the floated p.latestnews tag. The reason for this is that once static content alongside a float is given "layout" (see faq on haslayout) then it takes its margins from the floated contents edge and does not let the margins slide under the float as it should do.

(This is the same behaviour you would get in mozilla if you used overflow:auto.)

The extra gap is caused because headerpic can no longer fit in the space it is allocated and IE drops it down below the floated p tag to see if there is more room.

So you see that your negative margin fix is also needed by IE7 because it exhibits the same behavior and far from excluding ie7 from the hack you should have been giving it to ie7 as well.

However the hack is misguided because in fact it will not work if more content is added to the p tag because headerpic will simply move down some more each time more content is added to the floated p tag and you would need to keep increasing the negative margin to match.

It would have been simpler to remove the margin and float the headerpic and not use any hacks.

However this is still not perfect because your floated p tag has no width set and I'm guessing that content may well spread horizontally and if this is the case then as soon as the content reaches the floated headerpic it will push it out of the way.

If this is the case then really you should have the headerpic first in the source followed by an unfloated p tag which will just wrap normally around the image. (or give the p tag a width that fits in the space allocated))