Not quite an answer, I'm afraid, but it was getting a bit too lengthy for a comment...
In what way is the positioning "all wrong" when you change the position
attribute? Are you talking about the positioning on the printed page, or in the browser? If it's in the browser, use a separate print stylesheet...
Can you only "fix" the page by removing those two paragraphs, or does removing other paragraphs in that same div, and perhaps on the same printed page, that add up to about the same length also fix it?
A little Googling around does reveal that IE7 has issues with positioning and print. Have a look at the following links. They might point you in the right direction:
- http://www.webmasterworld.com/css/3408611.htm
- http://www.techsupportforum.com/microsoft-support/internet-explorer-forum/162695-cant-print-specific-html-ie7.html
This post by "ThaSaltyDawg" from the second link looks the most informative, though it addresses a different (?) IE7 print bug:
Through trial and error I found a fix for my issue. It was CSS as I had guessed. Using the combinations of float, position, z-index, and a few other elements caused some unexpected results in IE. After going to the Microsoft Support page I found there is a bug with IE concerning this.
In my case using a float value with
<table>
is frowned upon in IE. It displays ok, but not so well for printing. Also make sure your position value is correct. And if you are nesting<table>
's and<div>
's make sure your z-index is correct.There is no real set way to set these things, it depends on there usage because several of my pages had to have different tweaks.
Floats and absolutely positioned elements seem to give the most problems. So you're probably just going to have to go with your earlier "solution" of changing the position
attribute on a div (in the print stylesheet), and then work your way through the rest to fix the broken layout.