问题
I'm making a simple content management system, my CSS and layout works for everything apart from I make a table which then somehow moves the footer section to move into a wrapper sort of section above it. Even text below table gets output above the table.
My basic layout...
<?php
session_start();
//nav bar //top part of page which fully works etc
include "header.php";
?>
<section class= "mainSection">
<section class = "subMain">
<p> this should be above </p>
<?php include "/mysql/catgoryShow.php"; ?>
<p> this should be below the table </p>
</section>
</section>
<footer class = "mainFooter">
</footer>
</body>
my important parts of the css...
section.mainSection{
margin-left: 4%;
margin-right:4%;
min-height: 1000px;
background-color: #ffffff;
border-left-style:solid;
border-left-color:#DAE3ED;
border-left-width:5px;
border-right-style:solid;
border-right-color:#DAE3ED;
border-right-width:5px;
}
section.subMain{
margin-left: 10%;
margin-right: 10%;
padding-top:10%;
padding-bottom: 2%;
}
my footer css
footer.mainFooter{
margin-left: 4%;
margin-right:4%;
height: 75px;
background-color:#78B0F0;
border-top-style:solid;
border-top-color:#DAE3ED;
border-top-width:5px;
}
and finally my table
<?php
$result=mysql_query($query);
$num=mysql_numrows($result);
echo "<p>'$query' returns $num rows:<p>\r\n";
?>
<table border="0" cellspacing="2" cellpadding="2">
<tr>
<td><font face="Arial, Helvetica, sans-serif">|Product ID|</font></td>
<td><font face="Arial, Helvetica, sans-serif">|Product Name|</font></td>
<td><font face="Arial, Helvetica, sans-serif">Product Category|</font></td>
<td><font face="Arial, Helvetica, sans-serif">Product Minimum Age|</font></td>
<td><font face="Arial, Helvetica, sans-serif">Product Discription|</font></td>
<td><font face="Arial, Helvetica, sans-serif">Product Price|</font></td>
<td><font face="Arial, Helvetica, sans-serif">Product Quantily Available|</font></td>
<td><font face="Arial, Helvetica, sans-serif">View Product Page|</font></td>
</tr>
<?php
$i=0;
while ($i < $num) {
$f1=mysql_result($result,$i,"ProductID");
$f2=mysql_result($result,$i,"ProductName");
$f3=mysql_result($result,$i,"ProductCategory");
$f4=mysql_result($result,$i,"SuitableAge");
$f5=mysql_result($result,$i,"ProductDiscription");
$f6=mysql_result($result,$i,"ProductPrice");
$f7=mysql_result($result,$i,"ProductAvailable");
?>
<tr>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f1; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f2; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f4; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f5; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f6; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f7; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f7; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><a href="../cw/itemPage.php?id=<?php echo $f1?>">View Details</a></font></td>
</tr>
<?php
$i++;
}
echo "<p>'$query' returns $num rows:<p>\r\n";
?>
Both of the echos that show the query get printed before the table somehow aswell :/
回答1:
As noted before - you must close that table element with the appropriate </table>
tag. In rare cases the table might also be inheriting some floating values so footer.mainFooter { clear: both; }
should fix that.
回答2:
As noted by @cimmanon closing this <table>
tag would be a really good start
回答3:
For the main footer's css, add position:relative
and bottom:0
. It will always be fixed to the bottom.
来源:https://stackoverflow.com/questions/14102228/footer-wont-stay-at-bottom-of-page-due-to-a-table