views:

970

answers:

4

Hello,

First time question here.

I have a site that I built around tables, I know not good, but it has been done. It looks fine in Firefox, but the text is all over the place in IE.

Link is http://www.mothershipinc.com Warning: contains music

Here is the code for the index page:

<?php
include "db.php";

function imageResize($width, $height, $target) {

 //takes the larger size of the width and height and applies the formula accordingly...this is so this script will work dynamically with any size image
 if ($width > $height) {
 $percentage = ($target / $width);
 } else {
 $percentage = ($target / $height);
 }

 //gets the new value and applies the percentage, then rounds the value
 $width = round($width * $percentage);
 $height = round($height * $percentage);

 //returns the new sizes in html image tag format...this is so you can plug this function inside an image tag and just get the
 return "width=\"$width\" height=\"50\"";
}

function imageResize150($width, $height, $target) {

 //takes the larger size of the width and height and applies the formula accordingly...this is so this script will work dynamically with any size image
 if ($width > $height) {
 $percentage = ($target / $width);
 } else {
 $percentage = ($target / $height);
 }

 //gets the new value and applies the percentage, then rounds the value
 $width = round($width * $percentage);
 $height = round($height * $percentage);

 //returns the new sizes in html image tag format...this is so you can plug this function inside an image tag and just get the
 return "width=\"150\" height=\"$height\"";
}

$playerSQL = "SELECT * FROM main";
$playerResult = mysql_query($playerSQL) or die(mysql_error());
$playerRS = mysql_fetch_array($playerResult);

?>

<html>
<head>
<link rel="stylesheet" href="css/template.css" type="text/css" />
<?php include "fadeinscript2.php"; ?>
<?php include "fadeinscript.php"; ?>
</head>
<body id="page_bg">
<div align="center">
   <table width="800" height="100%" border="0">
     <tr>
    <td colspan="7" valign="bottom" align="right" height="80" background="images/header.gif" style="background-repeat:no-repeat;padding-bottom:5px;padding-right:20px;">
         <font style="font-size:12px;" color="#ffffff"><a href="index.php" style="text-decoration:none;font-size:12px;color:#ffffff;">Home</a> | <a href="artist.php?artistid=0" style="text-decoration:none;font-size:12px;color:#ffffff;">Artists</a></font>
       </td>
     </tr>
     <tr>
       <td colspan="7">
       </td>
     </tr>
     <tr>
       <td colspan="7">
       </td>
     </tr>
     <tr>
<!--BEGIN CURRENT RELEASES BLOCK-->
       <td valign="top" width="189" height="280" background="images/small_home_box.gif" style="background-repeat:no-repeat;padding-top:8px;">
      <table width="100%">
        <tr>
     <td align="left" colspan="2">
       <font style="font-size: 18px" color="#ffffff">Current Releases</h1><br />
     </td>
        </tr>
       <?php
     $crQuery = "SELECT * FROM albums WHERE currentrelease='y' ORDER BY orderfield LIMIT 4";
     $crResult = mysql_query($crQuery) or die(mysql_error());
     while ($crRS = mysql_fetch_array($crResult))
     {
       // Get Artist Name
       $artistQuery = "SELECT * FROM artists WHERE id=" . $crRS['artistid'];
       $artistResult = mysql_query($artistQuery) or die(mysql_error());
       $artistRS = mysql_fetch_array($artistResult);
       $image_location = $crRS['image_location'];
       echo "<tr>";
       echo "<td width='55' valign='top' style='padding-top:3px;'>";
          //Display profile image
        //$myimage = getimagesize("albums/" . $image_location);
        //$newsize = imageResize($myimage[0], $myimage[1], 50);
        echo "<a href='artist.php?artistid=" . $artistRS['id'] . "' target='_self'><img src='albums/" . $image_location . "' height='50' width='50' border='0'></a>";     
       echo "</td>";
       echo "<td align='left' valign='top'>";
       echo "<font style='color:#ffffff;font-size:.7em;'>";
       echo "<b><a href='artist.php?artistid=" . $artistRS['id'] . "' target='_self' style='text-decoration:none;color:#ffffff;'>" . stripslashes($artistRS['artist_name']) . "</a></b><br />";
       echo "<a href='artist.php?artistid=" . $artistRS['id'] . "' target='_self' style='text-decoration:none;color:#ffffff;'>" . stripslashes($crRS['album_name']) . "</a>";
       echo "</td>";
       echo "</tr>";
     }
       ?>
     <tr>
       <td colspan="2" align="right" style="font-size:.7em; color:#ffffff;padding-right:12px;">
      more current releases
       </td>
     </tr>
         </table>   
       </td>
<!--END CURRENT RELEASES BLOCK-->
       <td width="25" valign="top">
         &nbsp;
       </td>
<!--BEGIN FLASH BLOCK-->
       <td colspan="3" width="374" height="280" align="center" valign="middle" background="images/big_home_box.gif" style="background-repeat:no-repeat;padding-right:8px;">
             <script type="text/javascript">
      //new fadeshow(IMAGES_ARRAY_NAME, slideshow_width, slideshow_height, borderwidth, delay, pause (0=no, 1=yes), optionalRandomOrder)
      new fadeshow(fadeimages, 350, 250, 0, 3000, 1, "R")
          </script>
       </td>
<!--END FLASH BLOCK-->
    <td width="10" valign="top">
         &nbsp;
       </td>
<!--BEGIN APPEARANCES BOX-->
    <td valign="top" width="189" height="280" background="images/small_home_box.gif" style="background-repeat:no-repeat;padding-top:8px;">
      <table width="100%">
        <tr>
     <td align="left" colspan="2">
       <font style="font-size: 18px" color="#ffffff">Shows</h1><br />
     </td>
        </tr>
     <?php
     $crQuery = "SELECT * FROM appearances";
     $crResult = mysql_query($crQuery) or die(mysql_error());
     $crRS = mysql_fetch_array($crResult);
       echo "<tr>";
       echo "<td width='55' valign='top' style='padding-top:3px;'>";
       echo "<font style='color:#ffffff;font-size:.7em;'>";
       echo ereg_replace("(\r\n\r\n|\n\n|\r\r)", "<br /><br />", substr($crRS['shows'],0,300));
       echo "</font>\n";
       echo "</td>";
       echo "</tr>"; 
       ?>
     <tr>
       <td colspan="2" align="right" style="font-size:.7em; color:#ffffff;padding-right:12px;">
      &nbsp;
       </td>
     </tr>
         </table>   
       </td>
<!--END APPEARANCES BOX-->
    </tr>
         <tr>
<!--BEGIN UPCOMING RELEASES BLOCK-->
       <td valign="top" width="189" height="367" background="images/tall_home_box.gif" style="background-repeat:no-repeat;padding-top:8px;">
      <table width="100%">
        <tr>
     <td align="left" colspan="2">
       <font style="font-size: 18px" color="#ffffff">Upcoming Releases</h1><br />
     </td>
        </tr>
        <?php
     $crQuery = "SELECT * FROM albums WHERE newrelease='y' ORDER BY orderfield LIMIT 4";
     $crResult = mysql_query($crQuery) or die(mysql_error());
     while ($crRS = mysql_fetch_array($crResult))
     {
       // Get Artist Name
       $artistQuery = "SELECT * FROM artists WHERE id=" . $crRS['artistid'];
       $artistResult = mysql_query($artistQuery) or die(mysql_error());
       $artistRS = mysql_fetch_array($artistResult);
       echo "<tr>";
       echo "<td width='55' valign='top' style='padding-top:3px;'>";
          //Display profile image
        //$myimage = getimagesize("albums/" . $crRS['image_location']);
        //$newsize = imageResize($myimage[0], $myimage[1], 50);
        echo "<a href='artist.php?artistid=" . $artistRS['id'] . "' target='_blank'><img src='albums/" . $crRS['image_location'] . "' height='50' width='50' border='0'></a>";     
       echo "</td>";
       echo "<td align='left' valign='top'>";
       echo "<font style='color:#ffffff;font-size:.7em;'>";
       echo "<b><a href='artist.php?artistid=" . $artistRS['id'] . "' target='_blank' style='text-decoration:none;color:#ffffff;'>" . $artistRS['artist_name'] . "</a></b><br />";
       echo "<a href='artist.php?artistid=" . $artistRS['id'] . "' target='_blank' style='text-decoration:none;color:#ffffff;'>" . $crRS['album_name'] . "</a><br />";
       echo "<a href='artist.php?artistid=" . $artistRS['id'] . "' target='_blank' style='text-decoration:none;color:#ffffff;'>" . $crRS['release_date'] . "</a>";
       echo "</td>";
       echo "</tr>";
     }
       ?>
     <tr>
       <td colspan="2" align="right" style="font-size:.7em; color:#ffffff;padding-right:12px;">
      &nbsp;
       </td>
     </tr>
         </table>   
       </td>
<!--END UPCOMING RELEASES BLOCK-->
<!--BEGIN PLAYER BLOCK-->
     <td colspan="5" valign="top" width="418" height="367">
      <table width="100%">
        <tr>
          <td align="center">
         <?php
      echo stripslashes($playerRS['playercode']);
     ?> 
          </td> 
        </tr>
         </table>    
    </td>
<!--END PLAYER BLOCK-->
<!--BEGIN NEWS BOX-->
    <td valign="top" width="189" height="367" background="images/tall_home_box.gif" style="background-repeat:no-repeat;padding-top:8px;">
      <table width="100%">
        <tr>
     <td align="left" colspan="2">
       <font style="font-size: 18px" color="#ffffff">News</h1><br />
     </td>
        </tr>
        <?php
     $crQuery = "SELECT * FROM news";
     $crResult = mysql_query($crQuery) or die(mysql_error());
     $crRS = mysql_fetch_array($crResult);
       echo "<tr>";
       echo "<td width='55' valign='top' style='padding-top:3px;'>";
       echo "<font style='color:#ffffff;font-size:.7em;'>";
       echo ereg_replace("(\r\n\r\n|\n\n|\r\r)", "<br /><br />", substr($crRS['news'],0,500));
       echo "</font>\n";
       echo "</td>";
       echo "</tr>"; 
       ?>
     <tr>
       <td colspan="2" align="right" style="font-size:.7em; color:#ffffff;padding-right:12px;">
      more news
       </td>
     </tr>
         </table>   
       </td>
<!--END APPEARANCES BOX-->
    </tr>
    <tr>
<!--BEGIN ARTISTS BOX-->
    <td colspan="7" width="800" height="300" align="center" valign="top" background="images/artists.gif" style="background-repeat:no-repeat;padding-top:8px; padding-right:4px; padding-left:4px;">
      <table width="100%">
        <tr>
     <td align="left" colspan="2">
       <font style="font-size: 18px" color="#ffffff">Artists</font><br />
     </td>
        </tr>
        <tr>
        <?php
     $crQuery = "SELECT * FROM artists ORDER BY orderfield LIMIT 36";
     $crResult = mysql_query($crQuery) or die(mysql_error());
     $artists = 0;
     $totalartists = mysql_num_rows($crResult);
     while ($crRS = mysql_fetch_array($crResult))
     {
       $artists = $artists + 1;
       echo "<td width='100' align='center' valign='top' style='padding-top:3px;'>\n";
          //Display profile image
        echo "<a href='artist.php?artistid=" . $crRS['id'] . "' target='_self'><img src='artists/" . $crRS['image_location'] . "' height='75' width='75' border='0'></a><br />\n"; 
        echo "<a href='artist.php?artistid=" . $crRS['id'] . "' target='_self' style='text-decoration:none;color:#ffffff;font-size:.7em;'>" . $crRS['artist_name'] . "</a>\n";
       echo "</td>\n";
       if($artists == 8 || $artists == 16 || $artists == 24)
       {
        echo "</tr>\n";
      echo "<tr>\n";
       }
     }
       ?>
     </tr>
     <tr>
       <td colspan="6" align="right" style="font-size:.7em; color:#ffffff;padding-right:12px;">
      <a href="artist.php?artistid=0" style='text-decoration:none;color:#ffffff;font-size:.7em;'>more artists</a>
       </td>
     </tr>
         </table>       
     </td>
<!--END ARTISTS BOX-->
    </tr>  
    <tr>
     <td colspan="4" align="left" style="padding-left:15px;color:#ffffff;font-size:.75em;">
      Copyright &copy;2009 Mothership Inc.
     </td>
     <td colspan="3" align="right" style="padding-right:15px;">
      <a href="mailto:[email protected]" style="color:#ffffff;text-decoration:none;font-size:.75em;">Contact Us</a>
     </td>
    </tr> 
   </table>
</div>
</body>
</html>
+2  A: 

Consider the following block of your code:

<td valign="top" width="189" height="280" background="images/small_home_box.gif" style="background-repeat:no-repeat;padding-top:8px;">
      <table width="100%">
        <tr>
     <td align="left" colspan="2">
       <font style="font-size: 18px" color="#ffffff">Shows</h1><br />
     </td>
        </tr>
     <tr><td width='55' valign='top' style='padding-top:3px;'><font style='color:#ffffff;font-size:.7em;'>PASADENA<br /><br />Mar 17 2009 8:00P 
 Nabbs Creek Cafe Pasadena, Maryland <br /><br />Mar 19 2009 8:00P 
 thew barn with 86 the effort Carney, Maryland <br /><br />Mar 20 2009 8:00P 
 whiskey bar w/ b&b Hoboken, New Jersey <br /><br />Mar 21 2009 9:00P 
 Red House Tavern w/ Bond & bentley,Tsunami Rising! Baltimore, Maryland </font>
</td></tr>

You have parent td with width 189, but the child td with contents is large only 55. Thats' why your text go off.

Alekc
AlekC: That worked great to get the text back in horizontally. Thank you so much.Now, there is still a huge gap between the header of the "boxes and the content. Can you help me with that?
A: 

this has to do with the fact that IE6 (what I looked at it with) does not support the min-width tag, which I noticed you've used, IE6 also counts margins and padding as width, so to speak.

Mr. Vile
+1  A: 

It really wouldn't be incredibly painful to create that layout using divisions instead of tables.

You'll still need to bear in mind the following though.

min-width is not supported in older versions of IE width in firefox is exclusive of borders and padding, in IE6 the border and padding are inside the width. Example - 100px box with 10px padding is 120px wide in FF and 100 wide in IE6.

<div style="width: 800px; height: 80px; margin: 5px auto; background-color: Aqua;">
    <h2>Mothership Records Banner</h2>
</div>
<div style="width: 800px; margin: 10px auto; clear: both;">
    <div style="width: 178px; margin-right: 35px; float: left; background-color: Aqua;">Current Releases</div>
    <div style="width: 374px; margin-right: 35px; float: left; background-color: Aqua;">Image Banner Thing</div>
    <div style="width: 178px; float: left; background-color: Aqua;">Shows</div>
</div>
<div style="width: 800px; margin: 10px auto; clear: both;">
    <div style="width: 178px; margin-right: 35px; float: left; background-color: Aqua;">Upcoming Releases</div>
    <div style="width: 374px; margin-right: 35px; float: left; background-color: Aqua;">Player</div>
    <div style="width: 178px; float: left; background-color: Aqua;">News</div>
</div>
<div style="width: 800px; margin: 10px auto; clear: both; background-color: Aqua;">
    Artists
</div>
<div style="width: 800px; margin: 10px auto; clear: both;">
    Copyright
</div>
Sohnee
A: 

You can force most browsers to render (pretty much) the same by declaring doctype strict before any HTML is output:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;

Doctype tells the browser what set of rules to follow when rendering the style of a page, and the strict mode doctype has the most similarity across broswers in my experience.

Quirksmode has a very good overview of doctypes, and their comparison charts are first rate.

I doubt this has anything to do with it, but you have broken html too. All your headers (Current Releases, Shows, News) in the boxes are wrapped in <font>Header</h1>.