title: Extra blank page when I print (except in IE) - is it my print css?
body: <p>I am using print css to hide certain elements and also to stop page breaks when I don't want them. The user can choose to hide sections before they print.</p>
  
  <p>My problem is that when I print-preview there is always an extra blank page (at the end in Chrome and Firefox, and at the beginning in Opera) and I cannot figure out why. IE does not have a problem, no extra pages (which is shocking...)</p>
  
  <p>I would greatly appreciate some input. I have tried making the container div page-break-after: avoid; and page-break-after: auto; but neither worked. Also taking out the table.plain { page-break-inside:avoid; } did not make a difference.</p>
  
  <p>The exclude class is added to a table when the user clicks the hide icon. This works and anything with the exclude class does not show in print. The final page the user wants to print may fit on one page or may not.</p>
  
  <p>Here is my html:</p>
  
  <pre><code>&lt;body&gt;
      &lt;div id="main"&gt;
          &lt;div id="content"&gt;
              &lt;div id="side" class="exclude"&gt;
                  ...logo, etc, shown at side on screen...
              &lt;/div&gt;            
              &lt;div id="data"&gt;
                  &lt;table class="printOnly plain printHeader"&gt;
                      ...logo, etc, to print at top...
                  &lt;/table&gt;                
                  &lt;div&gt;
                      &lt;table class="detail plain"&gt;
                          &lt;tbody&gt;
                              &lt;tr&gt;
                                  &lt;td class="rel"&gt;
                                      &lt;div class="abs exclude visibility"&gt;
                                          &lt;a href="#" class="show ico-show ico hid"&gt;Show&lt;/a&gt;
                                          &lt;a href="#" class="hide ico-hide ico"&gt;Hide&lt;/a&gt;
                                      &lt;/div&gt;
                                      &lt;h3&gt;Contact&lt;/h3&gt;
                                  &lt;/td&gt;
                              &lt;/tr&gt;
                              ...more tr with contact details...
                          &lt;/tbody&gt;
                      &lt;/table&gt;
                      ...more tables with other details...
                  &lt;/div&gt;
              &lt;/div&gt; //data
          &lt;/div&gt; //content
      &lt;/div&gt; //main
  &lt;/body&gt;
  </code></pre>
  
  <p>Here is my print css:</p>
  
  <pre><code>@media print {
      .exclude {
          display: none !important;
      }
  
      .printOnly {
          display:block !important;
      }
  
      div#data,
      div#data div {
          width: 98% !important;
          border: none !important;
      }
  
      table.plain { page-break-inside:avoid; }
  }
  </code></pre>
  
  <p>Many thanks in advance for your help :)</p>