CSS问题与动态PHP页面

时间:2012-09-27 16:31:14

标签: php css dynamic xhtml css-tables

我不是HTML和CSS的初学者......但我使用的是PHP。我有一个非常小的动态生成的PHP页面,它创建一个表并用数字填充它。 CSS正在处理随机项目,非常奇怪,我不知道发生了什么。 <body>标记CSS根本不起作用。没有一处房产受到影响。 table.temps css也不起作用,但如果删除它,则<th>标记会丢失其样式。这是一个家庭作业,我知道这是一个简单的解决方案,我最近在CSS和PHP上度过了最糟糕的时光。

它只是一页,而且相对较小,所以这是文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<title>Lab 1</title> 

<style type="text/css">
<!-- Declare document <body> styles -->
body{
    background-color: #9FDBFF;
    color: #333;
    font-family: Helvetica, sans-serif;
    font-size: .8em;
    height: 100%;
    width: 100%;
}

<!-- Declare document table styles -->
table.temps {
    width: 50%;
    height: auto;
    min-height: 400px;
    border: 2px solid black;
    color: #333;
}

th {
    background: blue;
    color: #FFF;
    height: 20px;
    width: 100px;
}

.colorIt {
    background-color: #CCC;
}
</style>

</head>
<body>
<?php

$intTableTotalWidth = 8;
$intTableTotalHeight = 8;
$intCount = 1;

print("<table class='temps'>");
print("<th>Farenheight</th>");
print("<th>Celcius</th>");

for ($intHeight = 0; $intHeight < $intTableTotalHeight; $intHeight++) {
print("<tr>");

for ($intWidth = 0; $intWidth < $intTableTotalWidth; $intWidth++) {

    if ($intCount % 2 == 0){
        print("<td class='colorIt'>" . $intCount ."</td>");
    }
    else {
        print ("<td>" . $intCount . "</td>");
    }

    $intCount++;
}

print("</tr>");
}

print("</table>");
?>
</body>
</html>

编辑:我的错人,我甚至没有意识到我在CSS中使用HTML注释。它是内部CSS,因此CSS注释不会改变HTML文档中的颜色,这会让我失望。我解决了这个问题。感谢您的投入!

4 个答案:

答案 0 :(得分:3)

您在样式标记中使用了html注释。这是不允许的。你应该从不在样式和脚本标签中使用html注释。这是不允许的。删除它们一切都会有效。

答案 1 :(得分:2)

删除这些行

<!-- Declare document <body> styles -->
<!-- Declare document table styles -->

答案 2 :(得分:0)

  1. 您的<th>代码应嵌入<tr>代码:<tr><th>col1</th><th>col2</th></tr>

  2. 您输出的单元格/行数多于<th>定义的列数。如果您希望<th>包含两列,则应使用<th colspan="2">col1</th>

答案 3 :(得分:0)

更简单的解决方案:在.php文件的开头有session_start(),将所有主题放在数组中,然后包含样式表

session_start()
$theme=array("links"=>"#ff0000", "bkg"=>"#00ff00");
$_SESSION["Theme"]=$theme;
...
<link rel="stylesheet" type="text/css" href="default.php">

,你的样式表看起来像这样: 如default.php

<?php session_start();
if (isset($_SESSION["Theme"])) {
    extract($_SESSION["Theme"]);
    header("Content-type: text/css");
} else {
// this part is for proper coloring the file, editor will see <style> 
// but when loaded from main file <style> will be discarded     
?>
<style>
<?php } ?>
a {
   color:<?=$links?>;      
}

body {
    background-color: <?=$bkg?>;
}